Kubernetes集群部署之二CA證書製作

創建TLS證書和秘鑰

kubernetes 系統的各組件需要使用 TLS 證書對通信進行加密,本文檔使用 CloudFlare 的 PKI 工具集 cfssl 來生成 Certificate Authority (CA) 和其它證書.

1. 下載並安裝 CFSSL:

<code># cat cssl.sh #!/bin/bash curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo #sh cssl.sh/<code>

複製cfssl命令文件到k8s-node1和k8s-node2節點。如果實際中多個節點,就都需要同步複製(好像不需要分發到node節點中.。。)。

<code>[root@k8s-master ~]# scp /opt/kubernetes/bin/cfssl* 10.88.0.2:/opt/kubernetes/bin [root@k8s-master ~]# scp /opt/kubernetes/bin/cfssl* 10.88.0.3:/opt/kubernetes/bin/<code>

設置環境變量,在各個節點都添加環境變量.

<code>[root@k8s-master ~]#vim /etc/profile export PATH=/opt/kubernetes/bin/:$PATH [root@k8s-master ~]# source /etc/profile/<code>

2. 初始化cfssl,並創建臨時證書目錄:

<code>[root@k8s-master src]# cd /usr/local/src [root@k8s-master src]# mkdir ssl && cd ssl [root@k8s-master ssl]# cfssl print-defaults config > config.json [root@k8s-master ssl]# cfssl print-defaults csr > csr.json/<code>

3. 創建用來生成 CA 文件的 JSON 配置文件

<code>[root@k8s-master ssl]#cat > ca-config.json 4. 創建用來生成 CA 證書籤名請求(CSR)的 JSON 配置文件

<code>[root@k8s-master ssl]# cat > ca-csr.json 5. 生成CA證書(ca.pem)和密鑰(ca-key.pem)

<code>[root@k8s-master ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca [root@k8s-master ssl]# ls -l ca* -rw-r--r-- 1 root root 290 May 4 19:28 ca-config.json -rw-r--r-- 1 root root 1001 May 4 19:28 ca.csr -rw-r--r-- 1 root root 208 May 4 19:28 ca-csr.json -rw------- 1 root root 1679 May 4 19:28 ca-key.pem -rw-r--r-- 1 root root 1359 May 4 19:28 ca.pem/<code>

6.分發證書

<code>[root@k8s-master ssl]# cp ca.csr ca.pem ca-key.pem ca-config.json /opt/kubernetes/ssl SCP證書到k8s-node1和k8s-node2節點 [root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.88.0.2:/opt/kubernetes/ssl [root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.88.0.3:/opt/kubernetes/ssl/<code>

服務各組件的證書會在後面安裝和使用時在生成.