一、设备kube-apiserver的CA正式相关的文件和启动参数

openssl genrsa -out ca.key 2048

openssl req x509 -new nodes -key ca.key -subj "/CN=yourcompany.com" -days 5000 -out ca.crt

opensll genrsa -out server.key 2048

二、准备master_ssl.conf文件 该文件用于x509 v3版本的证书

[req]

req_extensions = v3_req

distinguished_name = req_distinguished_name

[req_distinguished_name]

[v3_req]

basicConstraints = CA:FALSE

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

subjectAltName = @alt_names

[alt_names]

DNS.1 = kubernetes

DNS.2 = kubernetes.default

DNS.3 = kubernetes.default.svc

DNS.4 = kubernetes.default.svc.cluster.local

DNS.5 = k8s-master (服务器的hostname)

IP.1 = 169.169.0.1 (svc的cluster ip)

IP.2 = 192.168.01. (node的IP)

三、基于maste_ssl.conf 创建server.csr和server.crt文件 在生成server.csr是 -subj的参数中“/CN”指定的文件是master的主机名

openssl req -new -key server.key -subj "/CN=k8s-master" -config master_ssl.conf -out server.csr

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 5000 -extensions v3_req -extfile master_ssl.conf -out server.crt

全部执行完后会生产6个文件:ca.crt ca.key ca.srl server.crt server.csr server.key

四、把生产的6个文件cp到一个目录中,然后设置kube-apiserver的三个启动参数

--client-ca-file=ca.crt --tls-cert-file=server.key --tls-private-key-file=server.crt

五、关闭非安全端口--insecure-port=0 --secure-port=6443 重启kube-apiserver

六、设置kube-controller-manager的客户端证书、私钥、启动参数

openssl genrsa -out cs_client.key 2048

openssl req -new -key cs_client.key -subj "/CN=k8s-node-1" -out cs_client.csr

openssl x509 -req -in cs_client.csr -CA ca.crt -CAkey ca.key --CAcreateserial -days 5000 -out cs_client.crt