안녕하세요 ! 강의 너무 잘보고 도움 많이 되고 있습니다. ㅎㅎ 강의 보는중에 궁금한 부분이 있어서 댓글 남깁니다. k8s playground 에서 실습중에 있으나 runtime이 containerd 라서 해당 runtime을 통해 pause 컨테이너를 확인할 수 있는 방법이 없을까요?? ㅜ
강의 잘 듣고 있습니다. 강의실습을 따라 하다가 한가지 안되는 현상이 있어서 문의드립니다. master에서 nginx pod생성을 한 이후에 infra container(pause) 생성여부를 확인위해 work_node에 접속하여 docker ps -a 를 실행했는데 아무런 정보가 출력이 되지 않던데 무엇이 문제인지 알 수 있을까요? master에서 kubectl get pod 하면 nginx pod 정상생성 및 describe 명령어로 확인시에 container도 running상태로 정상인데 아래와 같이 pod가 생성된 work_node에서는 생성된 컨테이너 정보를 docker ps -a 로 확인이 안되거든요! root@node2:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
동작중인 클러스터에서 docker가 아닌 containerd가 동작되고 있는지 확인해보세요. containerd로 동작중인 경우 crictl 명령으로 확인해야합니다. --- crictl command # pod 관리 crictl pods crictl pods --namespace kube-system # image 관리 crictl pull busybox crictl images crictl rm busyubox ### 참고 사이트 : github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md
강의 잘 보고 있습니다. 궁금한 것이 init container에서 myservice와 mydb를 기동했을때 정상 작동 확인하고 myapp-pod 삭제 후 다시 생성하면 바로 running가 됩니다. 처음엔 따로 생성해줘야 실행이 되었는데 다음부터는 그냥 같이 실행되는건가요? 아니면 삭제가 안되고 실행되고 있는건가요?
[이성미 강사] 네. kubernetes는 기본 pod, service에 대한 DNS를 지원하고 있습니다. pod와 service 통신은 10.96.0.10의 kube-dns 서비스를 사용하면 됩니다. kubernetes.io/ko/docs/concepts/services-networking/dns-pod-service/
강의 잘 듣고 있습니다. 다름이 아니라 20:30 초 쯤에 ssh 명령어로 워커 노드에 접속하는 부분이 있는데 제가 워커노드 이름을 k8s-node1 으로 하여 ssh k8s-node1 명령을 입력하고 password도 올바르게 입력을 했는데 접속이 안되고 Permission denied, please try again 이라는 문구만 계속 나옵니다 왜 그런지 알 수 있을까요? 그리구 root@master가 아닌 guru@master 에서는 guru@node1으로 ssh 접속이 가능한데 그 이유도 궁금합니다 ps. 인터넷에서 찾아보니 sshd_config 라는 파일의 PasswordAuthentication 을 yes로 바꾸라는 말이 있어 똑같이 해보았지만 안됩니당
댓글 다신지는 오래되셨지만 혹시나 해서 댓글 남겨용 master - ssh-keygen -t rsa - cd .ssh 안에 있는 id_rsa.pub 공개 키를 복사 node2 - node2의 cd .ssh 안에서 cat > authorized_keys 로 master에서 복사한 키 붙여넣기 master - 다시 master로 돌아와서 ssh node2 로 접속해보면 패스워드 없이 접속이 가능하다. 저는 이렇게 해서 접속 했어요 출처: itsolution.co.kr/free/195?page=8
따배 따봉! 👍
매일같이 듣고 있습니다!
[이성미 강사] 오~ 쉽지 않은데요.. ^^
일단 감사합니다. 선감후감
도움되는 강의 였길 바립니다.
오늘도 감사합니다^^
1빠 응원 감사합니다.
역시 반복해서 보니 훨씬 더 낫습니다. 감사합니다.
반복해서 듣는 열정이면. ^^ 다 된것입니다.
정말 유튜브 강의계에 한줄기빛 같은 분이십니다 ㅠㅠ
도움이 되어서 정말 다행입니다. 앞으로도 도움 되는 강의 되길 바랍니다. 감사합니다😊
안녕하세요 ! 강의 너무 잘보고 도움 많이 되고 있습니다. ㅎㅎ
강의 보는중에 궁금한 부분이 있어서 댓글 남깁니다.
k8s playground 에서 실습중에 있으나 runtime이 containerd 라서 해당 runtime을 통해 pause 컨테이너를 확인할 수 있는 방법이 없을까요?? ㅜ
sudo ctr -n k8s.io container ls
또는
crictl 명령을 실행하시면 됩니다
강사님이 pause container 설명하실 때 docker ps로 확인하시는데, k8s version 1.2 이상 쓰시는 분들은 ps aux로 확인해보시면 떠 있습니다~~
아. 그렇습니다. kubectl 1.2 버전인가요?
정말 감사합니다 ~
[이성미 강사] 저도 감사합니다
강의 잘 듣고 있습니다.
강의실습을 따라 하다가 한가지 안되는 현상이 있어서 문의드립니다.
master에서 nginx pod생성을 한 이후에 infra container(pause) 생성여부를 확인위해
work_node에 접속하여 docker ps -a 를 실행했는데 아무런 정보가 출력이 되지 않던데
무엇이 문제인지 알 수 있을까요?
master에서 kubectl get pod 하면 nginx pod 정상생성 및 describe 명령어로 확인시에 container도 running상태로 정상인데
아래와 같이 pod가 생성된 work_node에서는 생성된 컨테이너 정보를 docker ps -a 로 확인이 안되거든요!
root@node2:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
동작중인 클러스터에서 docker가 아닌 containerd가 동작되고 있는지 확인해보세요.
containerd로 동작중인 경우 crictl 명령으로 확인해야합니다.
---
crictl command
# pod 관리
crictl pods
crictl pods --namespace kube-system
# image 관리
crictl pull busybox
crictl images
crictl rm busyubox
### 참고 사이트 : github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md
강의 잘 보고 있습니다.
궁금한 것이 init container에서 myservice와 mydb를 기동했을때 정상 작동 확인하고 myapp-pod 삭제 후 다시 생성하면 바로 running가 됩니다.
처음엔 따로 생성해줘야 실행이 되었는데 다음부터는 그냥 같이 실행되는건가요? 아니면 삭제가 안되고 실행되고 있는건가요?
init 컨테이너는 처음 실행하는 시점만 점검합니다.
centos 7.9 OS 세팅할 당시에 KT DNS를 세팅을 했더니 myservice.default.svc.cluster.local 도메인 ip를 찾아서 반복이 안되버리네요 ㅎㅎ;
수정하니 잘 되었습니다
감사합니다
[이성미 강사] 미안합니다. 제가 글 내용을 잘 이해 못했습니다. host DNS 설정이 service에 영향을 준다는 것일까요? 구체적 정보 공유 주시면 다른분들께도 도움될듯합니다.
@@ttabae-learn
네 강사님
OS : CentOS 7.9
Version : 1.22.0
control-plane에서 /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=168.126.63.1 로 지정하였었습니다.
이후 kubectl create -f init-container-exam.yaml 을 실행하고 status가 0/2가 되길 기다렸는데 얼마 안있다가 2/2로 완료가 되면서 running 으로 진행되었습니다.
myservice, mydb 컨테이너는 이미 종료가 된 상황이기에 myapp-container로 진입하였습니다.
#> kubectl exec myapp-pod -c myapp-container -it -- sh
#> nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: myservice.default.svc.cluster.local
Address 1: 185.53.177.54
실행결과가 이리 나왔습니다. 결과가 나오니 반복문이 정상적으로 종료되어 컨테이너가 실행된것 같습니다
coredns 정보를 확인해보고자 아래 커맨드를 입력하였습니다.
#> kubectl get svc --namespace=kube-system
kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 17d
#> kubectl -n kube-system edit configmap coredns
apiVersion: v1
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}
kind: ConfigMap
coredns가 /etc/resolve.conf를 참조하고 있는 것 같더군요.
일단 network 설정에서 dns1를 빼고 다시 재부팅후 로그를 확인해봤더니
coredns "no nameservers found" 라고 나오고 myservice, mydb 서비스를 등록해도 coredns pod가 CrashLoopBackOff 상태라서 못 찾더군요
그래서 dns1을 coredns ip(10.96.0.10) 으로 넣고 재부팅하니 잘 진행되었습니다.
제가 해결한 방식이 이게 맞는지 아직은 강의를 끝까지 안 들어서 모르겠습니다 ^^;
감사합니다.
[이성미 강사] 네. kubernetes는 기본 pod, service에 대한 DNS를 지원하고 있습니다.
pod와 service 통신은 10.96.0.10의 kube-dns 서비스를 사용하면 됩니다.
kubernetes.io/ko/docs/concepts/services-networking/dns-pod-service/
webserver 실행 중인 노드에 접속해서 docker ps 했는데 안나옵니다... 상태도 Running 중인데... 개념만 알아두겠습니다...
실습이 안나올수가 없는 내용이에요. 혹시 오류난 페이지를 캡쳐해서 메일로 보내보세요.
kubernetes 버전 1.24 부터 docker 를 사용하지 않으므로 docker ps 해도 표시가 안될듯합니다. 대신 crictl ps 하면 나와요
카타코다에서 똑같이 해봤는데 init 컨테이너 스테이터스가 0에서 바뀌질 않아서 myapp이 정상동작되지 않는데 이유를 알 수있을까요?
물론 2개 서비스 모두 동작시켰고 service/mydb created 도 제대로 나왔습니다
글만 봐서는 어떤 상황인지 모르겠습니다. yaml을 보여주시면 도움될듯요.
강의 잘 듣고 있습니다.
다름이 아니라 20:30 초 쯤에 ssh 명령어로 워커 노드에 접속하는 부분이 있는데 제가 워커노드 이름을 k8s-node1 으로 하여 ssh k8s-node1 명령을 입력하고 password도 올바르게 입력을 했는데 접속이 안되고 Permission denied, please try again 이라는 문구만 계속 나옵니다 왜 그런지 알 수 있을까요?
그리구 root@master가 아닌 guru@master 에서는 guru@node1으로 ssh 접속이 가능한데 그 이유도 궁금합니다
ps. 인터넷에서 찾아보니 sshd_config 라는 파일의 PasswordAuthentication 을 yes로 바꾸라는 말이 있어 똑같이 해보았지만 안됩니당
댓글 다신지는 오래되셨지만 혹시나 해서 댓글 남겨용
master
- ssh-keygen -t rsa
- cd .ssh 안에 있는 id_rsa.pub 공개 키를 복사
node2
- node2의 cd .ssh 안에서 cat > authorized_keys 로 master에서 복사한 키 붙여넣기
master
- 다시 master로 돌아와서 ssh node2 로 접속해보면 패스워드 없이 접속이 가능하다.
저는 이렇게 해서 접속 했어요
출처: itsolution.co.kr/free/195?page=8
고맙습니다.