1、安装必要工具cfssl、cfssljson、kubectl
linux
wget -a --show-progress --https-only --timestamping https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
验证:
cfssl version
2)安装kubectl
wget https://storage.googleapis.com/kubernetes-release/v1.12.0/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin
验证:
kubectl version --client
3、配制创建证书
配制CA并创建TLS证书
我们将使用CloudFlare's PKI 工具 cfssl 来配制 PKI lnfrastructure ,然后使用它去创建Certificate Authority(CA),并为etcd、kube-apiserver、kubelet、kube-proxy创建TSL证书
1)创建用于生成其他TSL证书的Certificate Authority
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"usages": ["signing", "key encipherment", "server auth", "client auth"],
"expiry": "87600h"
}
}
}
}
EOF
新建CA凭证签发请求文件:
cat > ca-csr.json <<EOF
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "US",
"L": "Portland",
"O": "kubernetes",
"OU": "CA",
"ST": "Oregon"
}
]
}
EOF
生成CA凭证和私钥:
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
结果生成以下两个文件:
ca-key.pem
ca.pem
client 与 server 凭证
创建用于kubernetes 组件的client 与server凭证,以及一个用于kubernetes admin用户的client凭证
Admin 客户端凭证
创建admin client 凭证签发请求文件:
cat > admin-csr.json <<EOF
{
"CN": "admin",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "US",
"L": "Portland",
"O": "system:masters",
"OU": "kubernetes The Hard Way",
"ST": "Oregon"
}
]
}
EOF
创建admin client 凭证和私钥:
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.dson ||cfssljson -bare admin
生成下面两个文件
admin-key.pem admin.pem
kubelet客户端凭证(kubernetes 使用special-purpose authorization mode (被称作Node Authorizer)授权来自kubelet 的API请求。为了通过Node Authorizer的授权,Kubelet必须使用一个署名为 system:node:<nodeName> 的凭证来证明它属于system:nodes 用户组)
kube-controller-manager客户端凭证
kube-proxy客户端凭证
kube-scheduler证书
kubernetes API Server 证书(为了保证客户端与Kubernetes API 的认证,Kubernetes API Server 凭证中必需包含kubbernetes-the-hard-way 的静态IP地址。)
Service Account 证书
4、配制生成Kubenetes 配制文件
每个kubeconfig文件都需要一个Kubetnets API Server 的IP地址。
kubelet 配制文件
kube-proxy配制文件
kube-controller-manager配制文件
kube-scheduler配制文件
Admin配制文件
5、配制生成密钥
创建加密密钥以及一个用于加密Kubernetes Secrets 的加密配制文件
6、部署etcd群集
7、部署控制节点
8、部署计算节点
9、配制kubectl
10、配制网络路由
11、部署dns扩展
12、烟雾测试
13、删除集群
----------------------------------------
1、准备部署环境