You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭建高可用Kubernetes集群时Etcd集群启动失败(Master节点3报超时错误)

搭建高可用Kubernetes集群时Etcd集群启动失败(Master节点3报超时错误)

我正在按照《Kubernetes Multi-Master HA Cluster with kubeadm》这篇指南搭建高可用K8s集群,集群配置如下:

  • 3个Master节点:节点3、节点4、节点5
  • 4个Worker节点:节点2、节点6、节点7、节点8(其中一个Worker节点作为HAProxy负载均衡器)

在完成「Installing and configuring Etcd on all 3 Master Nodes」章节的第6步时,我遇到了问题:

  • Master节点3执行相关命令后出现以下超时错误:
{"level":"warn","ts":"2023-03-28T17:21:07.929-0700","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-beafcd7b-fbf5-4c3e-b9ce-5c1032e26041/127.0.0.1:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  • Master节点4和节点5则能正常返回Etcd集群成员列表:
162974ed2b5b12b2, started, 192.168.60.4, https://192.168.60.4:2380, https://192.168.60.4:2379, false

5642d9d9da8c08a3, started, 192.168.60.3, https://192.168.60.3:2380, https://192.168.60.3:2379, false

6ffc3bfbd773170f, started, 192.168.60.5, https://192.168.60.5:2380, https://192.168.60.5:2379, false

以下是三个Master节点的etcd.service配置文件:

Master节点3的etcd.service

[Unit]
Description=etcd
Documentation=https://github.com/coreos

[Service]
ExecStart=/usr/local/bin/etcd \
--name 192.168.60.3 \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--peer-client-cert-auth \
--client-cert-auth \
--initial-advertise-peer-urls https://192.168.60.3:2380 \
--listen-peer-urls https://192.168.60.3:2380 \
--listen-client-urls https://192.168.60.3:2379,http://127.0.0.1:2379 \
--advertise-client-urls https://192.168.60.3:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster 192.168.60.3=https://192.168.60.3:2380,192.168.60.4=https://192.168.60.4:2380,192.168.60.5=https://192.168.60.5:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Master节点4的etcd.service

[Unit]
Description=etcd
Documentation=https://github.com/coreos

[Service]
ExecStart=/usr/local/bin/etcd \
--name 192.168.60.4 \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--peer-client-cert-auth \
--client-cert-auth \
--initial-advertise-peer-urls https://192.168.60.4:2380 \
--listen-peer-urls https://192.168.60.4:2380 \
--listen-client-urls https://192.168.60.4:2379,http://127.0.0.1:2379 \
--advertise-client-urls https://192.168.60.4:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster 192.168.60.3=https://192.168.60.3:2380,192.168.60.4=https://192.168.60.4:2380,192.168.60.5=https://192.168.60.5:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Master节点5的etcd.service

[Unit]
Description=etcd
Documentation=https://github.com/coreos

[Service]
ExecStart=/usr/local/bin/etcd \
--name 192.168.60.5 \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--peer-client-cert-auth \
--client-cert-auth \
--initial-advertise-peer-urls https://192.168.60.5:2380 \
--listen-peer-urls https://192.168.60.5:2380 \
--listen-client-urls https://192.168.60.5:2379,http://127.0.0.1:2379 \
--advertise-client-urls https://192.168.60.5:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster 192.168.60.3=https://192.168.60.3:2380,192.168.60.4=https://192.168.60.4:2380,192.168.60.5=https://192.168.60.5:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

另外,我在Master节点3上尝试使用ETCD v2版本的命令查询成员列表时,也得到了错误:

client: etcd cluster is unavailable or misconfigured; error #0: client: endpoint http://127.0.0.1:2379 exceeded header timeout
; error #1: dial tcp 127.0.0.1:4001: connect: connection refused

备注:内容来源于stack exchange,提问作者Erika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:24:09