Kubernetes集群部署之二CA证书制作

创建TLS证书和秘钥

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

1. 下载并安装 CFSSL:

1[root@k8s-master ~]# cd /usr/local/src 2[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 3[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 4[root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 5[root@k8s-master src]# chmod +x cfssl* 6[root@k8s-master src]# mv cfssl-certinfo_linux-amd64 /opt/kubernetes/bin/cfssl-certinfo 7[root@k8s-master src]# mv cfssljson_linux-amd64 /opt/kubernetes/bin/cfssljson 8[root@k8s-master src]# mv cfssl_linux-amd64 /opt/kubernetes/bin/cfssl

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

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

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

1[root@k8s-master ~]#vim /etc/profile 2 export PATH=/opt/kubernetes/bin/:$PATH 3[root@k8s-master ~]# source /etc/profile

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

1[root@k8s-master src]# mkdir ssl && cd ssl 2[root@k8s-master ssl]# cfssl print-defaults config > config.json 3[root@k8s-master ssl]# cfssl print-defaults csr > csr.json

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

1[root@k8s-master ssl]#cat > ca-config.json <<EOF 2{ 3 "signing": { 4 "default": { 5 "expiry": "8760h" 6 }, 7 "profiles": { 8 "kubernetes": { 9 "usages": [ 10 "signing", 11 "key encipherment", 12 "server auth", 13 "client auth" 14 ], 15 "expiry": "8760h" 16 } 17 } 18 } 19} 20EOF

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

1[root@k8s-master ssl]# cat > ca-csr.json <<EOF 2{ 3 "CN": "kubernetes", 4 "key": { 5 "algo": "rsa", 6 "size": 2048 7 }, 8 "names": [ 9 { 10 "C": "CN", 11 "ST": "BeiJing", 12 "L": "BeiJing", 13 "O": "k8s", 14 "OU": "System" 15 } 16 ] 17} 18EOF

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

1[root@k8s-master ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca 2[root@k8s-master ssl]# ls -l ca* 3-rw-r--r-- 1 root root 290 Mar 4 13:45 ca-config.json 4-rw-r--r-- 1 root root 1001 Mar 4 14:09 ca.csr 5-rw-r--r-- 1 root root 208 Mar 4 13:51 ca-csr.json 6-rw------- 1 root root 1679 Mar 4 14:09 ca-key.pem 7-rw-r--r-- 1 root root 1359 Mar 4 14:09 ca.pem

6.分发证书

1[root@k8s-master ssl]# cp ca.csr ca.pem ca-key.pem ca-config.json /opt/kubernetes/ssl 2 3SCP证书到k8s-node1和k8s-node2节点 4[root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.106:/opt/kubernetes/ssl 5[root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.107:/opt/kubernetes/ssl

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )