• 部署前期准备工作




    下面的操作依托于上一篇文章

    环境介绍与基础配置

    安装cfssl工具集

    本文章使用CloudFlare的PKI工具cfssl创建所有证书。

    cd /opt/k8s/bin/
    wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
    wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
    wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
    
    # 批量修改文件名
    rename _linux-amd64 '' cfssl*
    
    chmod +x /opt/k8s/bin/*
    

    创建CA证书和秘钥

    为确保安全,kubernetes各个组件需要使用x509证书对通信进行加密和认证

    CA(Certificate Authority)是自签名的根证书,用来签名后续创建的其他证书。

    注意: 如果没有特殊指明,本文档的所有操作均在node01节点执行,远程分发到其他节点

    创建根证书 (CA)

    CA证书是集群所有节点共享的,只需要创建一个CA证书,后续创建的所有证书都是由它签名

    创建配置文件

    CA配置文件用于配置根证书的使用场景(profile)和具体参数(usage、过期时间、服务端认证、客户端认证、加密等)

    cd /opt/k8s/work
    cat > ca-config.json <<EOF
    {
      "signing": {
        "default": {
          "expiry": "87600h"
        },
        "profiles": {
          "kubernetes": {
            "usages": [
                "signing",
                "key encipherment",
                "server auth",
                "client auth"
            ],
            "expiry": "87600h"
          }
        }
      }
    }
    EOF
    
    
    ######################
    signing 表示该证书可用于签名其它证书,生成的ca.pem证书找中CA=TRUE
    server auth 表示client可以用该证书对server提供的证书进行验证
    client auth 表示server可以用该证书对client提供的证书进行验证
    

    创建证书签名请求文件

    cd /opt/k8s/work
    cat > ca-csr.json <<EOF
    {
      "CN": "kubernetes",
      "key": {
        "algo": "rsa",
        "size": 2048
      },
      "names": [
        {
          "C": "CN",
          "ST": "BeiJing",
          "L": "BeiJing",
          "O": "k8s",
          "OU": "4Paradigm"
        }
      ],
      "ca": {
        "expiry": "876000h"
     }
    }
    EOF
    
    
    
    #######################
    CN CommonName,kube-apiserver从证书中提取该字段作为请求的用户名(User Name),浏览器使用该字段验证网站是否合法
    O Organization,kube-apiserver 从证书中提取该字段作为请求用户和所属组(Group)
    kube-apiserver将提取的User、Group作为RBAC授权的用户和标识
    

    生成CA证书和私钥

    cd /opt/k8s/work
    cfssl gencert -initca ca-csr.json | cfssljson -bare ca
    ls ca*
    

    分发证书

    将生成的CA证书、秘钥文件、配置文件拷贝到所有节点的/etc/kubernetes/cert目录下

    cd /opt/k8s/work
    source /opt/k8s/bin/environment.sh
    for node_ip in ${NODE_IPS[@]}
      do
        echo ">>> ${node_ip}"
        ssh root@${node_ip} "mkdir -p /etc/kubernetes/cert"
        scp ca*.pem ca-config.json root@${node_ip}:/etc/kubernetes/cert
      done
    

    下载安装包并解压

    cd /opt/k8s/work/
    wget https://dl.k8s.io/v1.15.6/kubernetes-server-linux-amd64.tar.gz
    wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
    wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz
    
    mkdir flannel-v0.11
    tar xf flannel-v0.11.0-linux-amd64.tar.gz -C flannel-v0.11
    tar xf etcd-v3.3.13-linux-amd64.tar.gz
    tar xf kubernetes-server-linux-amd64.tar.gz
    
  • 相关阅读:
    mysql之左连接与右连接
    java使用AES加密解密 AES-128-ECB加密
    hive入门
    hive sequencefile导入文件遇到FAILED: SemanticException Unable to load data to destination table. Error: The file that you are trying to load does not match the file format of the destination table.错误
    hive查询遇到java.io.EOFException: Unexpected end of input stream错误
    hive内部表、外部表、分区
    hive的join查询
    hive的row_number()函数
    hive的UDF读取配置文件
    hive里的group by和distinct
  • 原文地址:https://www.cnblogs.com/winstom/p/11988329.html
Copyright © 2020-2023  润新知