kubernetes部署1——ectd部署(单节点)


#部署三个数据库是最稳妥的

一、环境部署

角色IP组件
Master1192.168.200.11kube-apiserver、kube-controller-manager、kube-scheduler、etcd
node1192.168.200.12kubelet-apiserver、kube-controller-manager、kbe-scheduler、etcd
node2192.168.200.13kubelet-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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值