Kubelet이 실행 상태에 있지만 kubectl이 서버에 대한 연결을 제공하고 있습니다. 오류가 거부되었습니다.

Kubelet이 실행 상태에 있지만 kubectl이 서버에 대한 연결을 제공하고 있습니다. 오류가 거부되었습니다.

이전에는 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 -akubelet 서비스를 다시 시작하기 전에도 시도했습니다 .

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 오류 문제를 해결하는 단계를 설명합니다.자세한 내용은.

이것도 비슷한지 확인해보세요그래서자세한 내용은.

관련 정보