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

kubeadm部署下,未配置Service的ETCD集群如何被K8S API Server访问?

K8S API Server 访问无Service/Ingress的ETCD集群(kubeadm部署场景)

在kubeadm默认部署的场景下,即便没有为ETCD创建Service或Ingress,API Server依然可以通过以下两种核心方式访问ETCD集群:

1. 直接通过节点IP+主机端口访问(kubeadm默认生产方案)

kubeadm部署ETCD Pod时,默认会配置hostNetwork: true,让ETCD直接使用宿主机网络,绑定节点的IP地址和默认TLS端口2379。

API Server的启动参数中会明确指定ETCD集群所有节点的访问地址,格式示例:

--etcd-servers=https://192.168.1.10:2379,https://192.168.1.11:2379

同时,API Server还会通过以下参数配置TLS认证信息,确保与ETCD的安全通信:

--etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
--etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
--etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key

这些证书文件由kubeadm自动生成,并通过Volume挂载到API Server Pod中。

2. 直接访问ETCD Pod的IP或Pod DNS(临时调试场景)

如果是临时调试或测试,API Server Pod可以直接通过ETCD Pod的IP地址访问,格式为https://<etcd-pod-ip>:2379。

另外,在同一集群内,还可以通过Pod的全限定域名(FQDN)访问,格式示例:

https://etcd-node01.kube-system.pod.cluster.local:2379

不过这种方式不适合生产环境,因为Pod重启后IP或名称可能变化,无法保证服务的稳定性。

需要注意的是,无论哪种方式,API Server都必须持有ETCD CA颁发的客户端证书,才能通过ETCD的TLS认证。

内容的提问来源于stack exchange,提问作者김민우

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:18:13