kubernetes本地部署

1. kubernetes创建跟证书和秘钥

2020-11-08  本文已影响0人  一瓶多先生

目录

00.安装CFSSL

cfssl和 cfssljson 命令行工具用于提供 PKI Infrastructure 基础设施与生成 TLS 证书。

Linux

# 或许你需要先执行 `yum install -y wget` 以安装 wget
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
sudo mv cfssl_linux-amd64 /usr/local/bin/cfssl
sudo mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

验证

验证 cfssl 的版本为 1.2.0 或是更高

$ cfssl version
Version: 1.2.0
Revision: dev
Runtime: go1.6

注意:cfssljson 命令行工具没有提供查询版本的方法。

01.配置CA并创建TLS证书

我们将使用 CloudFlare's PKI 工具 cfssl 来配置 PKI Infrastructure,然后使用它去创建 Certificate Authority(CA),并为 etcd、kube-apiserver、kubelet 以及 kube-proxy 创建 TLS 证书。

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

新建 CA 配置文件

mkdir /root/certificated
cd /root/certificated
cfssl print-defaults config > config.json
cfssl print-defaults csr > csr.json
# 根据config.json文件的格式创建如下的ca-config.json文件
# 过期时间设置成了 87600h
cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "87600h"
    },
    "profiles": {
      "kubernetes": {
        "usages": [
            "signing",
            "key encipherment",
            "server auth",
            "client auth"
        ],
        "expiry": "87600h"
      }
    }
  }
}
EOF

字段说明

创建 CA 证书签名请求

创建 ca-csr.json 文件,内容如下:

cat > ca-csr.json << EOF 
{
  "CN": "kubernetes",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "BeiJing",
      "L": "BeiJing",
      "O": "kubernetes",
      "OU": "System"
    }
  ],
    "ca": {
       "expiry": "87600h"
    }
}
EOF

生成 CA 凭证和私钥

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

结果将生成以下两个文件:

ca-key.pem
ca.pem
上一篇下一篇

猜你喜欢

热点阅读