Kubernetes学习笔记(二十四):Certificate
证书创建
证书生成工具:easyrsa、openssl、cfssl
生成CA certificate步骤:
-
Generate Keys
openssl genrsa -out ca.key 2048 -
Certificate Signing Request
openssl req -new -key ca.key -subj "/CN=KUBERNETES-CA" -out ca.csr -
Sign Certificates : CA创建root certificate是自我签名
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
生成client certificate步骤:
-
Generate Keys
openssl genrsa -out admin.key 2048 -
Certificate Signing Request
openssl req -new -key admin.key -subj "/CN=kube-admin" -out admin.csr -
Sign Certificates : CA创建root certificate是自我签名
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
可以通过在证书中添加用户组详细信息以区分不同的注册用户:openssl req -new -key admin.key -subj "/CN=kube-admin/O=system:masters" -out admin.csr
系统组件其名称必须以关键字system作为前缀
kube-api server 有多个别名:kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local
kube-api 添加别名方式:
openssl req -new -key apiserver.key -subj "/CN=kube-apiserver" -out apiserver.csr -config openssl.cnf
openssl.cnf
[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
IP.1 = 10.96.0.1
IP.2 = 1720.17.0.87
查看证书细节
x509解码证书以查看详细信息:
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
如果核心组件(如kubernetes api-server或etcd-server关闭),kubectl命令无法使用,可以用docker命令查看日志
Kubernetes Certificate Health Check Spreadsheet : https://github.com/mmumshad/kubernetes-the-hard-way/tree/master/tools

浙公网安备 33010602011771号