java系统找不到指定文件怎么解决
258
2022-10-28
跟着炎炎盐实践k8s---Kubernetes 1.16.10 二进制高可用集群部署之ETCD部署
这一节我们在三个主节点部署高可用的etcd集群,官方建议5节点或者7节点,我们三节点也是够用的。我们开始吧!
一、环境准备 10.13.33.29 etcd-0 10.13.33.40 etcd-1 10.13.33.38 etcd-2 etcd 数据目录:ETCD_DATA_DIR="/data/k8s/etcd/data" etcd WAL 目录:ETCD_WAL_DIR="/data/k8s/etcd/wal" (建议是 SSD 磁盘分区,或者和 ETCD_DATA_DIR 不同的磁盘分区) 二、部署安装ETCD
1、创建etcd相关证书
cd /opt/k8s/work
cat > etcd-csr.json < ###生成证书和私钥 cfssl gencert -ca=/opt/k8s/work/ca.pem \
-ca-key=/opt/k8s/work/ca-key.pem \
-config=/opt/k8s/work/ca-config.json \
-profile=kubernetes etcd-csr.json | cfssljson -bare etcd
ls etcd*pem ###分发到etcd节点 mkdir -p /etc/etcd/cert
cp etcd*.pem /etc/etcd/cert/ 2、安装etcd wget ##下载etcd组件
tar -xvf etcd-v3.3.13-linux-amd64.tar.gz ##解压
cp etcd-v3.3.13-linux-amd64/etcd* /opt/k8s/bin/ ##复制etcd命令到指定目录
chmod +x /opt/k8s/bin/* ##赋权
mkdir -p /data/k8s/etcd/data /data/k8s/etcd/wal ##创建etcd数据目录 3、创建etcd.service cat > etcd.service.template < 3、启动etcd systemctl daemon-reload && systemctl enable etcd && systemctl restart etcd && systemctl status etcd|grep Active
curl -L 127.0.0.1:2379/health ###检查启动状态 4、确认集群健康 [root@master-01 work]# curl -L 127.0.0.1:2379/health
{"health":"true"}
[root@master-01 work]# ETCDCTL_API=3 /opt/k8s/bin/etcdctl -w table --cacert=/etc/kubernetes/cert/ca.pem --cert=/etc/etcd/cert/etcd.pem --key=/etc/etcd/cert/etcd-key.pem --endpoints= endpoint status
+--------------------------+------------------+---------+---------+-----------+-----------+------------+
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | RAFT TERM | RAFT INDEX |
+--------------------------+------------------+---------+---------+-----------+-----------+------------+
| | 3d57cc849d2a16** | 3.3.13 | 33 MB | true | 36971 | 6201481 |
| | bff9394ca77d77** | 3.3.13 | 33 MB | false | 36971 | 6201481 |
| | 2ce7325ad513f9** | 3.3.13 | 33 MB | false | 36971 | 6201481 |
+--------------------------+------------------+---------+---------+-----------+-----------+------------+
[root@master-01 work]# ETCDCTL_API=3 /opt/k8s/bin/etcdctl -w table --cacert=/etc/kubernetes/cert/ca.pem --cert=/etc/etcd/cert/etcd.pem --key=/etc/etcd/cert/etcd-key.pem --endpoints= member list
+------------------+---------+-----------+--------------------------+--------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+-----------+--------------------------+--------------------------+
| 2ce7325ad513f9** | started | master-03 | | |
| 3d57cc849d2a16** | started | master-02 | | |
| bff9394ca77d77** | started | master-01 | | |
+------------------+---------+-----------+--------------------------+--------------------------+
{"health":"true"}[root@ETCDCTL_API=3 /opt/k8s/bin/etcdctl -w table --cacert=/etc/kubernetes/cert/ca.pem --cert=/etc/etcd/cert/etcd.pem --key=/etc/etcd/cert/etcd-key.pem --endpoints= endpoint health
is healthy: successfully committed proposal: took = 2.174634ms
is healthy: successfully committed proposal: took = 1.465878ms
is healthy: successfully committed proposal: took = 2.36525ms 安装kubectl后可以通过kubectl查看
[root@master-01 ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
etcd-1 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"} 5、向etcd写入POD网段信息 etcdctl \
--endpoints=\
--ca-file=/opt/k8s/work/ca.pem \
--cert-file=/opt/k8s/work/flanneld.pem \
--key-file=/opt/k8s/work/flanneld-key.pem \
mk /kubernetes/network/config '{"Network":"'172.30.0.0/16'", "SubnetLen": 21, "Backend": {"Type": "vxlan"}}' 6、重启flannel、docker systemctl restart flanneld docker
systemctl status flanneld docker | grep Active
ip addr show| grep flannel.1 7、检查flannel、docker是否获取到正确的子网 [root@master-01 work]# ip addr show|grep flannel.1
5: flannel.1:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~