k8s 집단 마스터 노드가 정상적으로 작동하지 않는 문제를 배열합니다
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 파라미터를 제거해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.