인프런 커뮤니티 질문&답변

박현경님의 프로필 이미지
박현경

작성한 질문수

데브옵스(DevOps)를 위한 쿠버네티스 마스터

우분투 환경으로 클러스터 구성 설명 2 - 클러스터 설정

파드 생성이 잘 안됩니다..

작성

·

5.5K

0

안녕하세요 쿠버네티스로 파드 생성이 잘 안돼서 질문드립니다.

어떤 부분을 조사해보고 검색해야 할지 알려주시면 감사하겠습니다.

 

kubectl run nginx --image="httpd:latest"

이렇게 명령어를 실행하고

 

kubectl describe pod nginx

describe 실행해보면 결과는 사진처럼 나옵니다.

텍스트의 이미지일 수 있음

 

사진속 에러 내용으로 검색해도 저는 weave CNI를 사용해서 저랑 다른 경우같고 잘 모르겠더라구요.. 

Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "37~" network for pod "nginx": networkPlugin cni failed to set up pod "nginx_default" network: unable to allocate IP address: Post "http://127.0.0.1:6784/ip/37~": dial tcp 127.0.0.1:6784: connect: connection refused, failed to clean up sandbox container "37~" network for pod "nginx": networkPlugin cni failed to teardown pod "nginx_default" network: Delete "http://127.0.0.1:6784/ip/37~": dial tcp 127.0.0.1:6784: connect: connection refused]

Pod sandbox changed, it will be killed and re-created.

 

 

# kubectl get pods --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default nginx 0/1 ContainerCreating 0 17m <none> ip-172-31-33-5 <none> <none>
default nod 0/1 ContainerCreating 0 21m <none> ip-172-31-33-50 <none> <none>
kube-system coredns-78fcd69978-dx7kj 1/1 Running 0 32m 10.32.0.3 ip-172-31-36-245 <none> <none>
kube-system coredns-78fcd69978-sfhfg 1/1 Running 0 32m 10.32.0.2 ip-172-31-36-245 <none> <none>
kube-system etcd-ip-172-31-36-245 1/1 Running 1 32m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system kube-apiserver-ip-172-31-36-245 1/1 Running 1 32m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system kube-controller-manager-ip-172-31-36-245 1/1 Running 1 32m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system kube-proxy-cr76b 1/1 Running 0 32m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system kube-proxy-p5h4x 1/1 Running 0 30m 172.31.33.50 ip-172-31-33-50 <none> <none>
kube-system kube-proxy-q4h5d 1/1 Running 0 29m 172.31.33.5 ip-172-31-33-5 <none> <none>
kube-system kube-scheduler-ip-172-31-36-245 1/1 Running 1 32m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system weave-net-972tp 2/2 Running 1 (31m ago) 31m 172.31.36.245 ip-172-31-36-245 <none> <none>
kube-system weave-net-z2mjm 1/2 CrashLoopBackOff 9 (3m32s ago) 29m 172.31.33.5 ip-172-31-33-5 <none> <none>
kube-system weave-net-zgpn7 1/2 CrashLoopBackOff 9 (3m54s ago) 30m 172.31.33.50 ip-172-31-33-50 <none> <none>

 

 

답변 2

0

박현경님의 프로필 이미지
박현경
질문자

정말 여러번 재구축하고도 아직도 원인 불명인데

# kubectl run nginx --image=nginx

이렇게 파드를 생성하면 위에 에러가 발생하는데 

 

# kubectl run nginx --image=nginx --dry-run -o yaml > test.yaml
# kubectl create -f test.yaml

이런 식으로 yaml 파일 생성해서 create 명령어로 만들면 성공하더라구요

원인을 모르겠습니다 이렇게 한 번 성공한 이후로는 run 명령어도 잘 됩니다...

 

다른 질문인데 제가 AWS EC2에서 구축하고 있는데

하나는 마스터 노드용 ec2 또 다른 하나는 워커 노드용 ec2

둘 다 다른 ec2에 public ip도 다른데 마스터노드에서 curl명령어로 통신이 되는 이유가 궁금합니다.

마스터 노드 # kubectl describe pod nginx
Name:         nginx
Namespace:    default
Priority:     0
Node:         ip-172-31-33-253/172.31.33.253
Start Time:   Thu, 16 Sep 2021 07:13:19 +0000
Labels:       run=nginx
Annotations:  <none>
Status:       Running
IP:           10.44.0.1
IPs:
  IP:  10.44.0.1
Containers:
  nginx:

10.44.0.1 IP로 파드가 구축되어져 있던데 

마스터 노드 # curl -s 10.44.0.1 | grep "title" 
<title>Welcome to nginx!</title>

마스터 노드에서 해당 ip로 curl 명령어를 치면 결과가 나오더라구요
nginx는 워커 노드에 생성되었으니 워커 노드의 public ip를 입력해야 하는 것 아닌가요?
어떻게 private IP로 통신할 수가 있나요?
마스터용 ec2랑 워커용 ec2는 다른 ec2니깐 다른 네트워크 대역대이지 않나요?

안녕하세요 강사 최일선입니다.

1) 저도 처음 보는 현상이라 잘 모르겠습니다. 아래 실습 내용 확인해보면 저는 잘 됩니다 ㅠㅠ

2) 이 부분은 cni의 종류에 따라 다릅니다. 저는 weavenet 환경을 사용해서 결과를 첨부해드리는데 저는 통신이 안됩니다. 이 부분은 뒤쪽에 가서 네트워크 이해 파트를 공부하시면 될 것 같습니다. 모든 컨테이너는 iptables 정책에 의해 연결이 가능하도록 구성되어 있습니다.

먼저 제가 가진 테스트 환경 실습 내용 결과를 공유 드립니다.

 "nginx가 잘 생성"되고 "외부에서 통신이 가능/불가능 모두(CNI 설정에 따라서 다름)" 정상입니다.

flannel cni가 배포된 환경인데 https://www.katacoda.com/courses/kubernetes/playground 여기를 사용하셔서 nginx 명령을 다시실행해보시면 잘 배포가 되실 겁니다. 여기서는 마스터노드에서 컨테이너로 cni 구성으로 인해 클러스터 IP로 통신이 가능합니다.

감사합니다.

 

0

안녕하세요 강사 최일선입니다.

문제가 있는 부분들이 저도 경험해본 바가 없어서 정확한 답변을 드리기 어려운 상태입니다.

혹시 어떤 작업을 하신 후에 이런 문제가 발생하셨나요?

포드 리스트에는 CNI 컨테이너도 제대로 올라오지 못하는 것처럼 보입니다.

그리고 명령을 보면 CNI 컨테이너와 통신에 실패해서 문제가 발생하는 것 같습니다.

 

다음 명령어로 삭제하신 후 다시 설치해보시면 어떨까 싶습니다.

kubectl delete -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

다음 명령으로 다시 설치가 가능합니다.

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

실행해보시고 추가 문제가 있다면 다시 알려주시면 감사하겠습니다.

감사합니다!

박현경님의 프로필 이미지
박현경
질문자

# kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                       READY   STATUS              RESTARTS      AGE     IP              NODE               NOMINATED NODE   READINESS GATES
default       nginx                                      0/1     ContainerCreating   0             97s     <none>          ip-172-31-33-50    <none>           <none>
kube-system   coredns-78fcd69978-8wvgw                   1/1     Running             0             7m15s   10.32.0.4       ip-172-31-36-245   <none>           <none>
kube-system   coredns-78fcd69978-gf8k6                   1/1     Running             0             7m15s   10.32.0.3       ip-172-31-36-245   <none>           <none>
kube-system   etcd-ip-172-31-36-245                      1/1     Running             3             7m20s   172.31.36.245   ip-172-31-36-245   <none>           <none>
kube-system   kube-apiserver-ip-172-31-36-245            1/1     Running             3             7m20s   172.31.36.245   ip-172-31-36-245   <none>           <none>
kube-system   kube-controller-manager-ip-172-31-36-245   1/1     Running             3             7m20s   172.31.36.245   ip-172-31-36-245   <none>           <none>
kube-system   kube-proxy-wkdtd                           1/1     Running             0             2m42s   172.31.33.50    ip-172-31-33-50    <none>           <none>
kube-system   kube-proxy-zwgs7                           1/1     Running             0             7m15s   172.31.36.245   ip-172-31-36-245   <none>           <none>
kube-system   kube-scheduler-ip-172-31-36-245            1/1     Running             3             7m22s   172.31.36.245   ip-172-31-36-245   <none>           <none>
kube-system   weave-net-48pfq                            1/2     Running             3 (54s ago)   2m42s   172.31.33.50    ip-172-31-33-50    <none>           <none>
kube-system   weave-net-rc4ht                            2/2     Running             0             6m10s   172.31.36.245   ip-172-31-36-245   <none>           <none>

 

알려주신 명령어로 weave 삭제하고 다시 설치해서 

kubectl run nginx --image=nginx

 

명령어를 실행해봐도 같은 에러가 발생합니다..

 

 

kubectl describe pod  명령을 사용해서 왜 Weavenet이 뜨지  않는지 확인 부탁드립니다! 

박현경님의 프로필 이미지
박현경

작성한 질문수

질문하기