部署环境
IP地址 | 主机名 | 功能 |
---|---|---|
10.1.104.200 | k8s-deploy | 部署节点,不承担实际作用 |
10.1.104.201 | k8s-master01 | master节点 |
10.1.104.202 | k8s-master02 | master节点 |
10.1.104.203 | k8s-master03 | master节点 |
10.1.104.204 | k8s-nginx | 负载均衡节点,实际生产中应为HA架构 |
10.1.104.205 | k8s-node01 | node节点 |
10.1.104.206 | k8s-node02 | node节点 |
10.1.104.207 | k8s-node03 | node节点 |
创建CA证书和密钥
安装cfssl工具集(k8s-deploy):
cfssl工具用于快速创建证书请求并生成各类证书文件:
mkdir -p /opt/k8s/cert && cd /opt/k8s
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 && mv cfssl_linux-amd64 /opt/k8s/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 && mv cfssljson_linux-amd64 /opt/k8s/bin/cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 && mv cfssl-certinfo_linux-amd64 /opt/k8s/bin/cfssl-certinfo
chmod +x /opt/k8s/bin/*
export PATH=/opt/k8s/bin:$PATH
创建CA证书(k8s-deploy):
CA证书为集群顶级证书(根证书),后续所有的应用的证书都由该证书颁发:
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
- expiry,证书有效期,单位为小时,这里设置为10年。
- server auth,client可以用该证书对server提供的证书进行验证。
- client auth,server可以用该证书对client提供的证书进行验证。
创建一个证书签名请求文件,添加如下内容:
cat > ca-csr.json << EOF
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Shanghai",
"L": "Shanghai",
"O": "dominos",
"OU": "ops"
}
],
"ca": {
"expiry": "87600h"
}
}
EOF
- CN,Common Name,kube-apiserver从证书中提取该字段作为请求的用户名 (User Name),浏览器使用该字段验证网站是否合法。
- O,Organization,kube-apiserver从证书中提取该字段作为请求用户所属的组 (Group)。
- kube-apiserver将提取的User、Group作为RBAC授权的用户标识。
通过ca证书和证书签名请求生成密钥对:
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
生成私钥和证书,结构如下图:
分发CA证书文件(k8s-deploy):
将生成的pem文件及config文件发送到各节点:
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
文档更新时间: 2020-10-22 15:55 作者:闻骏