一、实验环境介绍
- 实验环境:VMware15.5、Xshell 6、Centos7.6、flannel-v0.10.0、etcd-v3.3.10、kubernetes-server1.12
- 节点IP地址分配:
Master:192.168.50.133
Node1:192.168.50.134
Node2:192.168.50.135
二、实验步骤
- 前置条件:在各节点上先安装Docker-ce
//生成CA根证书
1、在master节点上生成CA证书配置文件
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"www": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF
2、签名CA证书
cat > ca-csr.json <<EOF
{
"CN": "etcd CA",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing"
}
]
}
EOF
3、生成CA证书
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
4、生成etcd三个节点之间的通信验证配置文件
cat > server-csr.json <<EOF
{
"CN": "etcd",
"hosts": [
"192.168.50.133",
"192.168.50.134",
"192.168.50.135"
"192.168.50.136"
"192.168.50.137"
"192.168.50.138"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF
5、生成ETCD-server端证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server
//部署ETCD
6、将软件包上传至master节点并解压缩
tar zxvf etcd-v3.3.10-linux-amd64.tar.gz
7、创建etcd工作目录
mkdir /opt/etcd/{cfg,bin,ssl} -p
8、将解压缩的命令文件放置在工作目录中
mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/
9、将之前生成的证书拷贝到指定工作目录中
cp etcd-cert/*.pem /opt/etcd/ssl/
10、将整个etcd工作目录及服务启动脚本推送到其他node节点
scp -r /opt/etcd/ root@192.168.50.135:/opt/
scp -r /opt/etcd/ root@192.168.50.136:/opt/
scp /usr/lib/systemd/system/etcd.service root@192.168.50.135:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.50.136:/usr/lib/systemd/system/
11、进入node1节点,修改配置文件
vim /opt/etcd/cfg/etcd
修改内容如下
ETCD_NA