Kubernetes需要PKI证书才能进行基于TLS的身份验证,如果使用kubeadm安装的kubernetes,则会自动生成集群所需要的证书。
集群中是如何使用证书:
etcd 还实现了双向 TLS 来对客户端和对其他对等节点进行身份验证。
单根CA
可以创建一个单根CA,有管理员控制它,该CA可以创建多个中间CA,并将所有进一步的创建委托给Kubernetes。
需要的以下CA
路径 | 默认CN | 描述 |
ca.crt,key | kubernetes-ca | kubernetes通用CA |
etcd/ca.crt,key | etcd-ca | 与etcd相关的所有功能 |
front-proxy/ca.crt,key | kubernetes-front-proxy-ca | 用于前端代理 |
所需的所有证书
默认CN | 父级CA | O(位于Subject中) | 类型 | 主机(SAN) |
kube-etcd | etcd-ca | server,client | localhost,127,0.0.1 | |
kube-etcd-peer | etcd-ca | server,client | localhost,127.0.0.1,对等节点IP | |
kube-etcd-healthcheck-client | etcd-ca | client | ||
kube-apiserver-etcd-client | etcd-ca | system:masters | client | |
kube-apiserver | kubernetes-ca | server | 如下【1】 | |
kube-apiserver-kubelet-client | kubernetes-ca | system:masters | client | |
front-proxy-client | kubernetes-front-proxy-ca | client |
【1】用来连接到集群中的不同IP或者DNS域名(就像kubeadm为负载均衡所使用的固定IP或DNS域名,kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster、kubernetes.default.svc.cluster.local)
证书使用方式及路径
默认 CN | 建议的密钥路径 | 建议的证书路径 | 命令 | 密钥参数 | 证书参数 |
---|---|---|---|---|---|
etcd-ca | etcd/ca.key | etcd/ca.crt | kube-apiserver | --etcd-cafile | |
kube-apiserver-etcd-client | apiserver-etcd-client.key | apiserver-etcd-client.crt | kube-apiserver | --etcd-keyfile | --etcd-certfile |
kubernetes-ca | ca.key | ca.crt | kube-apiserver | --client-ca-file | |
kubernetes-ca | ca.key | ca.crt | kube-controller-manager | --cluster-signing-key-file | --client-ca-file, --root-ca-file, --cluster-signing-cert-file |
kube-apiserver | apiserver.key | apiserver.crt | kube-apiserver | --tls-private-key-file | --tls-cert-file |
kube-apiserver-kubelet-client | apiserver-kubelet-client.key | apiserver-kubelet-client.crt | kube-apiserver | --kubelet-client-key | --kubelet-client-certificate |
front-proxy-ca | front-proxy-ca.key | front-proxy-ca.crt | kube-apiserver | --requestheader-client-ca-file | |
front-proxy-ca | front-proxy-ca.key | front-proxy-ca.crt | kube-controller-manager | --requestheader-client-ca-file | |
front-proxy-client | front-proxy-client.key | front-proxy-client.crt | kube-apiserver | --proxy-client-key-file | --proxy-client-cert-file |
etcd-ca | etcd/ca.key | etcd/ca.crt | etcd | --trusted-ca-file, --peer-trusted-ca-file | |
kube-etcd | etcd/server.key | etcd/server.crt | etcd | --key-file | --cert-file |
kube-etcd-peer | etcd/peer.key | etcd/peer.crt | etcd | --peer-key-file | --peer-cert-file |
etcd-ca | etcd/ca.crt | etcdctl | --cacert | ||
kube-etcd-healthcheck-client | etcd/healthcheck-client.key | etcd/healthcheck-client.crt | etcdctl | --key | --cert |
原文:https://www.cnblogs.com/gavin11/p/13112293.html