• Kubernetes集群部署之二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 <<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/ssl
    
    SCP证书到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

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

  • 相关阅读:
    前端页面模拟浏览器搜索功能Ctrl+F实现
    正则表达式中?=和?:和?!的理解
    JRebel激活教程
    BAT脚本一键启动多个程序
    WinInet简介及操作流程
    通过线程传递消息
    两串口收发测试
    获取PC可用串口端口,并将其在combo box中显示
    为MFC应用程序添加登录对话框界面
    Using CInternetFile open an Url
  • 原文地址:https://www.cnblogs.com/saneri/p/9119414.html
Copyright © 2020-2023  润新知