
이전에는 Kubernetes 클러스터가 제대로 작동했지만 마스터 노드(1.0.0.0)를 다시 시작한 후 kubectl 명령을 실행하는 데 문제가 발생하기 시작했습니다. 명령을 실행하면 kubectl get nodes
아래 오류가 발생합니다.
# kubectl get nodes
The connection to the server 1.0.0.0:6443 was refused - did you specify the right host or port?
( )인 마스터 노드에 연결할 때 1.0.0.0
포트 6443이 열려 연결을 허용하지 않습니다. netstat -lntp|grep 6443
출력을 제공하지 않습니다. Kubelet 서비스가 실행 중인 상태이며 출력에 systemctl status kubelet
의심스러운 내용이 표시되지 않습니다.
kubelet 서비스를 다시 시작해 보았으나 실패했습니다. swapoff -a
kubelet 서비스를 다시 시작하기 전에도 시도했습니다 .
6443 포트에서 연결을 허용하는 다른 서비스가 누락되었나요? 아니면 kubelet의 일이지만 그렇게 하지 못하는 걸까요? 도와주세요.
참고: 내 IP 주소를 1.0.0.0으로 마스킹했는데 실제 IP는 다릅니다. 어디에서나 Centos만 사용합니다.
답변1
아래에서 가능한 해결 방법을 확인하세요.
journalctl -xeu
먼저 kubelet 출력 의 로그를 검토하고 , error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory
다시 시작하고 활성화하는지 확인한 후cri-dockerd 서비스아래와 같이 :
sudo systemctl enable cri-dockerd.service
sudo systemctl restart cri-dockerd.service then
sudo systemctl start kubelet
그것은 당신에게 도움이 될 수 있습니다.깃허브 링크더 많은 정보를 위해서.
1) Kubeconfig 환경 변수가 설정되지 않았을 수 있습니다.
export KUBECONFIG=/etc/kubernetes/admin.conf
또는$HOME/.kube/config
2)사용자의 $HOME 디렉토리에 no .kube/config
파일이 있습니다. .kube 또는 구성 파일이 없는 경우
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config sudo chown (id -u):$(id -g)
$HOME/.kube/config
또는 다음과 같이 KUBECONFIG 변수를 내보낼 수도 있습니다.
export KUBECONFIG=$HOME/.kube/config
삼)위 구성 파일에 구성된 서버/포트가 잘못되었습니다. 마스터 서버의 IP/호스트 이름과 동일합니까? 그렇지 않다면 복사했는가? 문제를 해결하고 싶을 수도 있습니다.
그런데 cli에서 호스트 이름 명령을 실행하여 호스트 이름을 얻을 수 있습니다. 또는 IP에 대한 ifconfig입니다.
4)Docker 서비스가 다운되어 kubeapi Pod가 실행되지 않을 수 있습니다.
sudo systemctl start docker
sudo systemctl start kubelet
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (id -u):(id -g) $HOME/.kube/config
5)Kubelet 서비스가 다운되었을 수 있습니다. 이는 스왑이 활성화되어 있기 때문일 수 있습니다.
- sudo -i
- 스왑오프 -a
- 출구
- strace -eopenat kubectl 버전
아래와 같이 kubectl get node를 다시 입력할 수 있습니다.
6)다른 원인일 수도 있음'디스크 공간':
확인하다“df -h”
, 오버레이 또는 shm 없음(에 마운트됨)/var/lib/docker…
)가 나열되어 있으며 여유 디스크 공간을 늘릴 때까지 표시됩니다.
7)아래의 유사한 프로세스에 따라 문제를 해결하십시오.
주인
kubeadm 재설정 kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40 -- kubernetes-version=v1.18.0
kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
--discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
노드1
$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
--discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8
노드2
$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
--discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8
주인
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 5m18s v1.18.6
node1 Ready <none> 81s v1.18.6
node2 Ready <none> 43s v1.18.6
$ scp /root/.kube/config [email protected]:/root/.kube/config
$ scp /root/.kube/config [email protected]:/root/.kube/config
8)문제가 계속 발생하는 경우 다음을 시도해 보세요.
iptables는 인스턴스를 재부팅한 후 문제를 일으킬 수 있습니다.
sudo su
iptables -P INPUT ACCEPT ALL
iptables -F
또한 이것을 참조하십시오문서에서는 kubectl 오류 문제를 해결하는 단계를 설명합니다.자세한 내용은.
이것도 비슷한지 확인해보세요그래서자세한 내용은.