二进制安装:Kubernetes(2)-CA证书制作

创建TLS证书和秘钥

kubernetes 系统的各组件需要使用 TLS 证书对通信进行加密,本文档使用 CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 和其它证书.

1. 下载并安装 CFSSL:

[root@k8s-master ~]# cd /usr/local/src

[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

[root@k8s-master src]# chmod +x cfssl*

[root@k8s-master src]# mv cfssl-certinfo_linux-amd64 /opt/kubernetes/bin/cfssl-certinfo

[root@k8s-master src]# mv cfssljson_linux-amd64  /opt/kubernetes/bin/cfssljson

[root@k8s-master src]# mv cfssl_linux-amd64  /opt/kubernetes/bin/cfssl

复制cfssl命令文件到k8s-node1和k8s-node2节点。如果实际中多个节点,就都需要同步复制(好像不需要分发到node节点中.。。)。

[root@k8s-master ~]# scp /opt/kubernetes/bin/cfssl*10.200.3.106:/opt/kubernetes/bin

[root@k8s-master ~]# scp /opt/kubernetes/bin/cfssl*10.200.3.107:/opt/kubernetes/bin

设置环境变量,在各个节点都添加环境变量.

[root@k8s-master ~]#vim /etc/profile

export PATH=/opt/kubernetes/bin/:$PATH

[root@k8s-master ~]# source /etc/profile

2. 初始化cfssl,并创建临时证书目录:

[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

3. 创建用来生成 CA 文件的 JSON 配置文件

[root@k8s-master ssl]#cat >  ca-config.json <

{

  "signing": {

    "default": {

      "expiry":"8760h"    },

    "profiles": {

      "kubernetes": {

        "usages": [

            "signing",

            "key encipherment",

            "server auth",

            "client auth"        ],

        "expiry":"8760h"      }

    }

  }

}

EOF

4. 创建用来生成 CA 证书签名请求(CSR)的 JSON 配置文件

[root@k8s-master ssl]# cat > ca-csr.json <

{

  "CN":"kubernetes",

  "key": {

    "algo":"rsa",

    "size":2048  },

  "names": [

    {

      "C":"CN",

      "ST":"BeiJing",

      "L":"BeiJing",

      "O":"k8s",

      "OU":"System"    }

  ]

}

EOF

5. 生成CA证书(ca.pem)和密钥(ca-key.pem)

[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 Mar  4 13:45 ca-config.json

-rw-r--r-- 1 root root 1001 Mar  4 14:09 ca.csr

-rw-r--r-- 1 root root  208 Mar  4 13:51 ca-csr.json

-rw------- 1 root root 1679 Mar  4 14:09 ca-key.pem

-rw-r--r-- 1 root root 1359 Mar  4 14:09 ca.pem

6.分发证书

[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.json10.200.3.106:/opt/kubernetes/ssl

[root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json10.200.3.107:/opt/kubernetes/ssl

 服务各组件的证书会在后面安装和使用时在生成.

你可能感兴趣的:(二进制安装:Kubernetes(2)-CA证书制作)