Skip to the content.

k8s 安装

创建 TLS 证书和秘钥

使用 CloudFlare 的 PKI 工具集 cfssl 生成 CA 和其它证书

生成的证书包括:

使用的证书组件如下:

安装过程中只需要在 master 节点主机上执行,证书只需要创建一次,新节点需要使用证书时,只需要将/etc/kubernetes/目录下的证书拷贝到新节点即可。

安装 CFSSL

以下命令需要使用 root 权限执行

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
chmod +x cfssl_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssljson_linux-amd64
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x cfssl-certinfo_linux-amd64
mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo

创建 CA (Certificate Authority)

使用 root 账号操作

mkdir /root/ssl
cd /root/ssl
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 文件,内容如下

{
  "CN": "kubernetes",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "BeiJing",
      "L": "BeiJing",
      "O": "k8s",
      "OU": "System"
    }
  ],
    "ca": {
       "expiry": "87600h"
    }
}

生成CA证书和私钥

$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca
$ ls ca*
ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem

创建 kubernetes 证书

###

创建 kubeconfig 文件

创建高可用 etcd 集群

安装 kubectl 命令行工具

部署master节点

安装 flannel 网络插件

部署 node 节点

安装 kubedns 插件

安装 dashboard 插件

安装 heapster 插件

安装 EFK 插件