작성
·
198
·
수정됨
0
도저히 실습에 진도가 나가지않아서 삽질하다가 질문드립니다.
사내에서 실습하는데, 사내 Proxy로 인해 Vagrant로 동작이 안되서 만들어놓으신 Vagrantfile, sh 스크립트 파일까지 고쳐가면서 하나씩 뚫고 가다가 결국은 포기했습니다.
그래서 강의대로 OVA이미지 파일 4개를 Windows의 VirtualBox에 import하고 실행했는데요.
강의처럼 테스트로 nginx pod 하나 뛰워보면, 계속 상태가 아래와 같이 ContainerCreating에서 변하지 않습니다.
[root@m-k8s ~]# kubectl run nginx --image=nginx
pod/nginx created
[root@m-k8s ~]# kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 0/1 ContainerCreating 0 14s <none> w3-k8s <none> <none>
그래서 인터넷 뒤져서 descibe 명령을 해보면 아래와 같고요
[root@m-k8s ~]# k describe pods
Name: nginx
....
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 3m11s default-scheduler Successfully assigned default/nginx to w3-k8s
Warning FailedCreatePodSandBox 3m10s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "98c8cd593834608f6b964442a4253da3b4d5c8936ee5ba0b01d2b37dd58f7f07": plugin type="calico" failed (add): stat /var/lib/calico/nodename: no such file or directory: check that the calico/node container is running and has mounted /var/lib/calico/
kubelet.service 로그를 보면 아래와 같이 rpc error가 발생합니다.
[root@m-k8s ~]# journalctl -f -u kubelet.service
-- Logs begin at Fri 2024-05-31 13:58:40 KST. --
May 31 13:59:30 m-k8s kubelet[1170]: E0531 13:59:30.245464 1170 kuberuntime_gc.go:176] "Failed to stop sandbox before removing" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" sandboxID="684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167"
May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856695 1170 remote_runtime.go:269] "StopPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" podSandboxID="e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0"
May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856857 1170 kuberuntime_manager.go:954] "Failed to stop sandbox" podSandboxID={Type:containerd ID:e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0}
무엇이 문제일까요? ㅠ
위 로그에 "https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default"
이 10.96.0.1 IP는 처음보는 IP인데 정상적인 IP는 맞을까요?
OVA이미지 import할때 VirtualBox에 설정이 문제일까요?
kubectl run nginx --image=nginx 할때 외부사이트에서 이미지를 받아오나요? 외부 사이트라면 ID/패스워드 인증없이 받아오는걸까요? 외부 registry면.. 또 Proxy 설정이나, SSL 인증이 문제가 될거 같기도 한데요...
답변 1
1
안녕하세요
우선 외부의 연결이 없으면 모든 실습이 진행되지 않습니다.
그래서 외부 연결이 필요하다는 답변을 우선 드려야 할 것 같습니다.
연관해서
#3 docker hub에 있는 이미지를 받아옵니다. 이때 퍼블릭 이미지를 사용하기 때문에 필요한 인증은 따로 없습니다. (시간 당 사용 제한만 있습니다.)
#2은 문제가 없을 것 같습니다.
#1은 이미지를 받아오지 못해서 지우고 다시 받으려고 시도하는 과정 중에 발생하는 메시지로 보여집니다.
좀 더 구체적으로 CNI쪽(calico)가 네트워크 플러그인이니 그쪽으로 관련 메시지가 출력되는 것 입니다.
인터넷이 연결이 안되는 환경에서는 모든 실습이 진행되기 어렵습니다. 이건 현재 강의 뿐만 아니라 쿠버네티스로 강의를 만들었다면 거의 모두 동일할 것으로 예상됩니다.
따라서 인터넷이 연결되는 환경에서 실습을 권장 드립니다.
회사내에서 Proxy로 인해,
다른 Tool들도 사용시 문제가 있을때마다 적절한 Proxy설정, Insecure설정등으로 어떻게 해결해왔는데요.
쿠버네티스는 복잡하고 까막눈이어서, 사내에서 문제를 해결하면서 실습해보기가 쉽지않네요.
답변 감사드립니다👍👍👍