创建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/profileexport 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 <<EOF
{"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 <<EOF
{"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/sslSCP证书到k8s-node1和k8s-node2节点
[root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.106:/opt/kubernetes/ssl
[root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.107:/opt/kubernetes/ssl

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

Kubernetes集群部署之二CA证书制作相关推荐

  1. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(二)

    在上文中我介绍了ASP.NET Core应用程序容器化时需要注意的几个问题,并给出了一个案例应用程序:tasklist.今天接着上文的内容,继续了解一下如何使用Azure DevOps进行ASP.NE ...

  2. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三

    在上文ASP.NET Core应用程序容器化.持续集成与Kubernetes集群部署(二)中,我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例:tasklist搭建持续集 ...

  3. kubernetes 集群部署

    kubernetes 集群部署 环境 JiaoJiao_Centos7-1(152.112) 192.168.152.112 JiaoJiao_Centos7-2(152.113) 192.168.1 ...

  4. Kubernetes集群部署实录

    空降助手 环境准备 服务器配置信息 部署版本信息 关闭防火墙 禁用SELinux 关闭swap 修改hostname 配置hosts文件 runtime安装(docker安装) 安装记录 kubead ...

  5. 基于Kubernetes集群部署完整示例——Guestbook

    本文依赖环境:Centos7部署Kubernetes集群.基于Kubernetes集群部署skyDNS服务 该示例中,我们将创建一个redis-master.两个redis-slave.三个front ...

  6. 数据库系列之SequoiaDB高可用集群部署(二)

    SequoiaDB作为存储引擎,支持高并发的HTAP场景.本位总结运维分析项目中使用SequoiaDB作为数据存储的高可用部署实战,并接入Kafka进行高并发的更新业务和Spark进行高并发的批量查询 ...

  7. kubernetes集群部署(四):部署heapster+influxdb

    在上一篇<kubernetes集群部署(三):部署dashboard服务>中,我们部署了dashboard,但这个dashboard页面看上去好像少了点什么,没有cup和内存使用监控图表. ...

  8. 容器技术---(二)kubernetes集群部署

    Kubernetes简介 在Docker作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用:Kubernetes项目来源于Borg, ...

  9. 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信

    目录 一.Kubernetes简介 1.Kubernetes简介 2.kubernetes设计架构 3.Kubernetes核心组件 4.kubernetes设计结构 二.Kubernetes部署 1 ...

最新文章

  1. C#判断字符串是否为数字字符串
  2. Spring Boot Actuator:在其顶部具有MVC层的自定义端点
  3. pytorch教程之nn.Module类详解——使用Module类来自定义网络层
  4. 新浪的动态策略灰度发布系统:ABTestingGateway
  5. 如何为能源消费提供最后一公里智能服务
  6. 学习Jsoup(三)
  7. HTML-input文本框添加提示文字,填写内容时消失
  8. 正常网页开发如何解除父容器中子容器的浮动问题
  9. 【动态主席树】ZOJ 2112【树状数组+主席树】
  10. java中Map集合的四种遍历方式
  11. si4463的寄存器使用说明
  12. 51开发板用ADC采集模拟量
  13. 如何把分布式远程总线IO应用到项目中
  14. python复杂背景抠图_Opencv实现抠图背景图替换功能
  15. linux登录界面鼠标键盘失灵,vmware+centos7+启动在登录界面鼠标键盘都不可用
  16. C语言中long long的用法
  17. IE显示对象不支持此属性或方法 的解决方法
  18. Using Sketch with Framer 使用Sketch与Framer Lynda课程中文字幕
  19. 如何使用灰灰美国专利下载软件一键下载美国专利
  20. 慕课网视频中的代码---3-4 Minst手写体识别

热门文章

  1. 揭密备份恢复的原理!
  2. 修改Endnote插入Word参考文献中位置
  3. python获取元素在数组中的位置
  4. VS2013 Git 错误 “An error was raised by libgit2. Category = 21”
  5. 构建共线矩阵的两种惊艳操作
  6. 对数几率回归(逻辑回归)
  7. jay chou歌词 文本下载数据下载
  8. 无限轮播的实现,未加自动轮播效果(非原创)
  9. python文件定位函数_C语言中文件定位函数总结
  10. xavier / acts-as-tree-with-dotted-ids