k8s 집단 마스터 노드가 정상적으로 작동하지 않는 문제를 배열합니다

3301 단어
k8s 고가용 집단을 구축하여 마스터 노드 3대, 마스터 노드 2대가 다운된 후 남은 1대만 정상적으로 작동하지 않습니다.
kubectl get nodes 명령을 실행하는 중 다음 오류가 발생했습니다.
The connection to the server k8s-api:6443 was refused - did you specify the right host or port?

주: k8s-api에 대응하는 것은 바로 이 마스터 서버의 본기 IP 주소입니다.
netstat-lntp 명령을 실행하면kube-apiserver가 실행되지 않고 etcd와kube-proxy가 실행되지 않은 것을 발견합니다.
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:33807         0.0.0.0:*               LISTEN      602/kubelet         
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      572/rpcbind         
tcp        0      0 127.0.0.1:10257         0.0.0.0:*               LISTEN      3229/kube-controlle 
tcp        0      0 127.0.0.1:10259         0.0.0.0:*               LISTEN      3753/kube-scheduler 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      571/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1644/sshd           
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      602/kubelet         
tcp6       0      0 :::111                  :::*                    LISTEN      572/rpcbind         
tcp6       0      0 :::10250                :::*                    LISTEN      602/kubelet         
tcp6       0      0 :::10251                :::*                    LISTEN      3753/kube-scheduler 
tcp6       0      0 :::10252                :::*                    LISTEN      3229/kube-controlle 

dockerps 명령을 통해 etcd,kube-apiserver,kube-proxy 이 3개 용기가 실행되지 않은 것을 발견했습니다. etcd 용기가 끊임없이 시작->실패->재시작->또 실패...,컨테이너 로그 보기 다음 오류가 발견되었습니다.
etcdserver: publish error: etcdserver: request timed out
rafthttp: health check for peer 611e58a32a3e3ebe could not connect: dial tcp 10.0.1.252:2380: i/o timeout (prober "ROUND_TRIPPER_SNAPSHOT")
rafthttp: health check for peer 611e58a32a3e3ebe could not connect: dial tcp 10.0.1.252:2380: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")
rafthttp: health check for peer cc00b4912b6442df could not connect: dial tcp 10.0.1.82:2380: i/o timeout (prober "ROUND_TRIPPER_SNAPSHOT")
rafthttp: health check for peer cc00b4912b6442df could not connect: dial tcp 10.0.1.82:2380: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")
raft: 12637f5ec2bd02b8 is starting a new election at term 254669

etcd 시작 실패는 etcd가 3개 노드 집단 모드에서 시작하지만 다른 2대의 마스터 노드를 연결할 수 없기 때문에 이 문제를 해결하려면 단일 노드 집단 모드로 바꾸어야 합니다.처음에는 etcd를 단일 노드 모드로 바꾸는 방법을 몰랐는데, 나중에 인터넷에서 2개의 매개 변수--initial-cluster-state=new--force-new-cluster를 찾았고,/etc/kubernetes/manifests/etcd에서 찾았다.yaml에서 etcd 명령에 이 두 개의 파라미터를 추가하고 서버를 다시 시작하면master 노드가 정상적으로 실행될 수 있습니다.
  containers:
  - command:
    - etcd
    - --advertise-client-urls=https://10.0.1.81:2379
    - --cert-file=/etc/kubernetes/pki/etcd/server.crt
    - --client-cert-auth=true
    - --data-dir=/var/lib/etcd
    - --initial-advertise-peer-urls=https://10.0.1.81:2380
    - --initial-cluster=k8s-master0=https://10.0.1.81:2380
    - --initial-cluster-state=new
    ......

마스터가 정상적으로 실행되면 방금 추가한 이 두 개의 etcd 파라미터를 제거해야 합니다.

좋은 웹페이지 즐겨찾기