Bota5ky

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

posted @ 2022-08-28 20:38  Bota5ky  阅读(63)  评论(0)    收藏  举报