kubernetes部署1——ectd部署(单节点)
kubernetes——ectd部署(单节点)一、环境部署二、部署Master11、创建K8s目录2、将证书脚本和服务脚本拖进目录3、下载证书制作工具4、制作ca和ca签名并创建ca证书5、Server证书的创建6、安装etcd三、修改node1四、修改node2五、查看集群状态#部署三个数据库是最稳妥的一、环境部署角色IP组件Master1192.168.200.11kube-apiserver
kubernetes——ectd部署(单节点)
#部署三个数据库是最稳妥的
一、环境部署
角色 | IP | 组件 |
---|---|---|
Master1 | 192.168.200.11 | kube-apiserver、kube-controller-manager、kube-scheduler、etcd |
node1 | 192.168.200.12 | kubelet-apiserver、kube-controller-manager、kbe-scheduler、etcd |
node2 | 192.168.200.13 | kubelet-apiserver、kube-controller-manager、kbe-scheduler、etcd |
二、部署Master1
1、创建K8s目录
[root@master1 ~]# mkdir k8s/
[root@master1 ~]# cd k8s/
2、将证书脚本和服务脚本拖进目录
[root@master1 k8s]# ls
etcd-cert.sh etcd.sh#etcd-cert.sh 制作证书的脚本
#etcd.sh 服务脚本
[root@master1 k8s]# mkdir etcd-cert #制作证书存放的目录
[root@master1 k8s]# mv etcd-cert.sh etcd-cert #将证书的脚本拖进去
3、下载证书制作工具
[root@master1 k8s]# vim cfssl.sh
curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl #专门制作ssl证书的
curl -L https://pkg.cfssl.org/R1.2/cfssljason_linux-amd64 -o /usr/local/bin/cfssljson #专门制作json证书的
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@master1 k8s]# cd /usr/local/bin/
#将工具包直接拖进/bin/目录下
[root@master1 bin]# chmod +x *
#直接赋予所有文件执行权限
4、制作ca和ca签名并创建ca证书
#定义ca证书配置文件
cat > ca-config.json <<EOF
{
“signing”: {
“default”: {
“expiry”: “87600h” #证书的时效性
},
“profiles”: {
“www”: { #名称
“expiry”: “87600h”,
“usages”: [
“signing”,
“key encipherment”, #通过密钥进行验证
“server auth”, #服务端进行验证
“client auth” #客户端进行验证
]
}
}
}
}
EOF
#证书签名的配置文件
cat > ca-csr.json <<EOF
{
“CN”: “etcd CA”,
“key”: {
“algo”: “rsa”, #采用非对称秘钥
“size”: 2048 #大小
},
“names”: [
{
“C”: “CN”,
“L”: “Nanjing”,
“ST”: “Nanjing”
}
]
}
EOF
#生成证书
[root@master1 etcd-cert]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
#gencert 创建证书、initca初始化证书、cfssljson 用json格式创建证书、-bare 基本创建、 ca 名称叫ca、ca-csr.json 创建过程的文件
5、Server证书的创建
#指定etcd三个节点之间的通信验证
#创建server证书的配置文件
cat > server-csr.json <<EOF
{
“CN”: “etcd”,
“hosts”: [
“192.168.200.11”, #此处配置安装etcd节点的IP
“192.168.200.12”,
“192.168.200.13”
],
“key”: {
“algo”: “rsa”, #采用的是非对称秘钥
“size”: 2048 #秘钥的大小
},
“names”: [
{
“C”: “CN”,
“L”: “NanJing”, #此处需要与上面相一致
“ST”: “NanJing” #此处需要与上面相一致
}
]
}
EOF
#生成server证书
[root@master1 etcd-cert]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server
6、安装etcd
#将etcd安装包放到k8s目录下并解压
[root@master1 k8s]# tar -zxvf etcd-v3.3.10-linux-amd64.tar.gz
[root@master1 k8s]# cd etcd-v3.3.10-linux-amd64/
#创建配置文件、命令文件、证书
[root@master1 etcd-v3.3.10-linux-amd64]# mkdir /opt/etcd/{cfg,bin,ssl} -p
#将etcd和etcdct1这两个执行文件复制到/opt/etcd下
[root@master1 etcd-v3.3.10-linux-amd64]# mv etcd etcdctl /opt/etcd/bin/
#将证书复制到/opt/ssl下
[root@master1 etcd-cert]# mv *.pem /opt/etcd/ssl/
#启动etcd
[root@master1 ssl]# cd ~/k8s/
[root@master1 k8s]# bash etcd.sh etcd01 192.168.200.11 etcd02=https://192.168.200.12:2380,etcd03=https://192.168.200.13:2380
#进入时会卡住,此时是在等待其他节点的加入
#可以重新开一个客户端进行检查
[root@master1 ~]# netstat -natp | grep 2380
三、修改node1
#将Master1的一些配置复制到node1
[root@master1 ~]# scp -r /opt/etcd/ root@192.168.200.12:/opt/
[root@master1 ~]# scp /usr/lib/systemd/system/etcd.service root@192.168.200.12:/usr/lib/systemd/system/
#修改etcd的配置文件
[root@node1 ~]# vim /opt/etcd/cfg/etcd
#[Member]
ETCD_NAME=“etcd02”
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS=“https://192.168.200.12:2380” #将IP修改成本地
ETCD_LISTEN_CLIENT_URLS=“https://192.168.200.12:2379” #将IP修改成本地#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS=“https://192.168.200.12:2380” #将IP修改成本地
ETCD_ADVERTISE_CLIENT_URLS=“https://192.168.200.12:2379” #将IP修改成本地
ETCD_INITIAL_CLUSTER=“etcd01=https://192.168.200.11:2380,etcd02=https://192.168.200.12:2380,etcd03=https://192.168.200.13:2380”
ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster”
ETCD_INITIAL_CLUSTER_STATE=“new”#重启服务并查看状态
[root@node1 ~]# systemctl restart etcd.service
[root@node1 ~]# systemctl status etcd.service
四、修改node2
#将Master1的一些配置复制到node2
[root@master1 ~]# scp -r /opt/etcd/ root@192.168.200.13:/opt/
[root@master1 ~]# scp /usr/lib/systemd/system/etcd.service root@192.168.200.13:/usr/lib/systemd/system/
#修改etcd的配置文件
[root@node1 ~]# vim /opt/etcd/cfg/etcd
#[Member]
ETCD_NAME=“etcd02”
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS=“https://192.168.200.13:2380” #将IP修改成本地
ETCD_LISTEN_CLIENT_URLS=“https://192.168.200.13:2379” #将IP修改成本地#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS=“https://192.168.200.13:2380” #将IP修改成本地
ETCD_ADVERTISE_CLIENT_URLS=“https://192.168.200.13:2379” #将IP修改成本地
ETCD_INITIAL_CLUSTER=“etcd01=https://192.168.200.11:2380,etcd02=https://192.168.200.12:2380,etcd03=https://192.168.200.13:2380”
ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster”
ETCD_INITIAL_CLUSTER_STATE=“new”#重启服务并查看状态
[root@node1 ~]# systemctl restart etcd.service
[root@node1 ~]# systemctl status etcd.service
五、查看集群状态
#需要切换到证书目录下才可以检查
[root@master1 k8s]# cd /opt/etcd/ssl/
[root@master1 ssl]# /opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints=“https://192.168.200.11:2379,https://192.168.200.12:2379,https://192.168.200.13:2379” cluster-health
#启动用etcd、管理用etcl、需要ca证书、服务证书、和端口
更多推荐
所有评论(0)