关于Kubernetes证书的那点事 - 屌丝逆袭记

关于Kubernetes证书的那点事 - 屌丝逆袭记

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

Kubernetes 采用双向 TLS 认证。kubeadm 安装会自动生成证书,二进制部署需手动生成。集群使用三套 CA,分别用于 etcd、Kubernetes 组件和聚合层。证书存放于 /etc/kubernetes/pki,etcd 证书位于其 etcd 子目录,用于 server、peer 及健康检查等加密通信。

🔎

延伸解读

三套CA的分工与作用

Kubernetes集群默认使用三套独立的CA证书:一套用于etcd集群,一套用于Kubernetes内部组件通信,另一套用于聚合层(front-proxy)。这种设计实现了不同安全域的隔离,避免单一CA泄露导致整个集群信任链崩溃。如果觉得管理三套CA复杂,也可以合并为一套,但会降低安全隔离性。

etcd证书的具体用途

etcd证书存放在/etc/kubernetes/pki/etcd目录下,包括server、peer和healthcheck-client等证书。server证书用于etcd服务端与客户端(如kube-apiserver)的TLS通信;peer证书用于etcd节点之间的集群通信;healthcheck-client证书则用于健康检查探针。这些证书共同保障etcd集群内部及对外通信的安全。

kubeadm与二进制部署的证书差异

使用kubeadm安装Kubernetes时,集群所需的证书会自动生成并放置在/etc/kubernetes/pki目录下,同时生成admin.conf、kubelet.conf等配置文件。而通过二进制方式部署时,所有证书都需要手动生成和配置,这对运维人员的安全管理能力提出了更高要求。

❓

Q&A

Kubernetes 为什么需要证书?

Kubernetes 需要 PKI 证书来进行基于 TLS 的身份验证,并且为了安全性,采用双向认证。

kubeadm 安装的 Kubernetes 会自动生成证书吗?

是的,使用 kubeadm 安装 Kubernetes 时会自动生成集群所需的证书。

二进制部署 Kubernetes 时证书如何处理?

通过二进制搭建时,所有的证书都需要自己手动生成。

Kubernetes 集群通常使用几套 CA 证书?分别用于什么?

通常使用三套 CA 证书:一套给 etcd 使用,一套给 Kubernetes 内部组件使用,还有一套给配置聚合层使用。

Kubernetes 证书默认存放在哪个目录?

证书存放在 /etc/kubernetes/pki 目录下,etcd 证书位于其 etcd 子目录中。

etcd 证书有哪些?各自的作用是什么?

etcd 证书包括 server.crt/key、peer.crt/key、healthcheck-client.crt/key 以及 ca.crt/key。server 证书用于 etcd 服务端加密通信,peer 证书用于 etcd 节点间通信,healthcheck-client 证书用于健康检查客户端认证。

🏷️

标签

➡️

继续阅读