zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    jquery插件实现瀑布流
    mysql explain亲测
    html5 audio标签微信部分苹果手机不能自动播放音乐终极解决方案
    mysql主从复制笔记
    mysql主从复制报错解决方案
    php form表单ajax上传图片方法
    Android webView 正确的用法
    【博弈】【HDU】取石子游戏
    Gleb And Pizza CodeForces
    Kirill And The Game CodeForces
  • 原文地址:https://www.cnblogs.com/saneri/p/9119414.html
Copyright © 2011-2022 走看看