节点环境规划
Master节点可以使用CPU:2+内存 :2+硬盘:20G
Node节点需要跑业务,可以使用CPU:4+内存:4+硬盘:20G
服务器 | IP | 安装软件 |
---|---|---|
Master | 192.168.11.11 | kube-apiserver、kube-controller-manager、kube-scheduler、etcd |
Node01 | 192.168.11.16 | kubelet、kube-proxy、docker 、flannel 、etcd |
Node02 | 192.168.11.17 | kubelet、kube-proxy、docker 、flannel 、etcd |
软件包
百度网盘链接:https://pan.baidu.com/s/1o8kgiC_9b2hO8FRNaDGC3Q
提取码:qz5v
一、部署Etcd
1、制作证书
① 创建工作目录
[root@master ~]# mkdir k8s
[root@master k8s]# cd k8s
② 安装制作证书的工具cfssl
编写cfssl.sh脚本,从官网下载制作证书的工具cfssl,直接放在/usr/local/bin目录下,方便系统识别,并加执行权限
[root@localhost k8s]# vim cfssl.sh
curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo
[root@localhost k8s]# bash cfssl.sh #执行脚本等待安装下载软件
[root@localhost k8s]# ls /usr/local/bin/ #可以看到三个制作证书的工具
cfssl cfssl-certinfo cfssljson
#cfssl:生成证书工具
#cfssl-certinfo:查看证书信息
#cfssljson:通过传入json文件生成证书
③ 编辑etcd证书创建的脚本
Etcd之间的通讯都是需要安全认证的,安全认证又需要证书认证的
#创建证书目录
[root@master k8s]# mkdir etcd-cert
[root@master k8s]# cd etcd-cert
#编辑etcd证书创建的脚本
[root@master etcd-cert]# vim etcd-cert.sh
#创建生成ca证书的配置文件
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"www": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF
#创建ca证书的签名证书
cat > ca-csr.json <<EOF
{
"CN": "etcd CA",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing"
}
]
}
EOF
#cfssl、cfssljson:证书的创建工具。用ca签名证书生成ca证书,得到ca-key.pem ca.pem
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
#-----------------------
#指定etcd三个节点之间的通信验证—需要服务器签名证书 server-csr.json
cat > server-csr.json <<EOF
{
"CN": "etcd",
"hosts": [
"10.206.240.188",
"10.206.240.189",
"10.206.240.111"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF
#用ca-key.pem、ca.pem、服务器签名证书 生成ETCD证书 ----server-key.pem、server.pem
cfssl gencert -ca=ca.pem