二进制形式配置k8s集群(二)-生成证书

参考https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/04-certificate-authority.md
可以在任意一台机器上生成证书,之后再复制到各个节点即可。我图方便,直接在master上生成。

以下操作基于文章《配置virtualbox虚拟机》中配置的集群,理论上也适用于其他机器,但建议你也配置一个同样的集群以便先跟上。

安装cfssl

wget http://hw.files.jiankangyouyi.com/cfssl_linux-amd64 -O /usr/local/bin/cfssl
wget http://hw.files.jiankangyouyi.com/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo
wget http://hw.files.jiankangyouyi.com/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo

生成ca证书、私钥、配置文件

{

cat > ca-config.json < ca-csr.json <

生成admin客户端证书、私钥

{

cat > admin-csr.json < {
“CN”: “admin”,
“key”: {
“algo”: “rsa”,
“size”: 2048
},
“names”: [
{
“C”: “US”,
“L”: “Portland”,
“O”: “system:masters”,
“OU”: “Kubernetes The Hard Way”,
“ST”: “Oregon”
}
]
}
EOF

cfssl gencert
-ca=ca.pem
-ca-key=ca-key.pem
-config=ca-config.json
-profile=kubernetes
admin-csr.json | cfssljson -bare admin

}

为各个工作节点生成证书和私钥

for instance in node1 ; do
cat > ${instance}-csr.json < ${instance}-csr.json <

生成controller-manager 客户端证书、私钥

{

cat > kube-controller-manager-csr.json <

生成kube-proxy客户端证书、私钥

{

cat > kube-proxy-csr.json <

生成scheduler客户端证书和私钥

{

cat > kube-scheduler-csr.json <

生成api-server证书和私钥

{

KUBERNETES_PUBLIC_ADDRESS=172.28.128.10

KUBERNETES_HOSTNAMES=kubernetes,kubernetes.default,kubernetes.default.svc,kubernetes.default.svc.cluster,kubernetes.svc.cluster.local

cat > kubernetes-csr.json <

生成service-account 证书、私钥

{

cat > service-account-csr.json <

分发证书

ca.pem ${instance}-key.pem ${instance}.pem 分发到工作节点

ca.pem ca-key.pem kubernetes-key.pem kubernetes.pem service-account-key.pem service-account.pem 分发到控制面节点

转载声明:转载请注明来源:https://www.huanghg.com/operation/k8s/k8s-certificate-authority/,谢谢!-

你可能感兴趣的:(docker,kubernetes)