Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群
这里的etcd集群复用我们测试的3个节点,3个node都要安装并启动,注意修改配置文件
1、TLS认证文件分发:etcd集群认证用,除了本机有,分发到其他node节点
- scp ca.pem kubernetes-key.pem kubernetes.pem root@10.10.90.106:/etc/kubernetes/ssl
- scp ca.pem kubernetes-key.pem kubernetes.pem root@10.10.90.107:/etc/kubernetes/ssl
2、安装Etcd,这里使用的yum安装方式
- #查询版本是否合适,我这里是3.2.9版本
- yum info etcd
- #安装
- yum install etcd
若使用yum安装,默认etcd命令将在/usr/bin
目录下,注意修改下面的etcd.service
文件中的启动命令地址为/usr/bin/etcd
3、创建etcd的systemd unit文件(既centos7下的服务定义文件)
文件位置:/usr/lib/systemd/system/etcd.service ,默认该文件存在,删除重建即可。
- [Unit]
- Description=Etcd Server
- After=network.target
- After=network-online.target
- Wants=network-online.target
- Documentation=https://github.com/coreos
- [Service]
- Type=notify
- WorkingDirectory=/var/lib/etcd/
- EnvironmentFile=-/etc/etcd/etcd.conf
- ExecStart=/usr/bin/etcd \
- --name etcd-host0 \
- --cert-file=/etc/kubernetes/ssl/kubernetes.pem \
- --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
- --peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem \
- --peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
- --trusted-ca-file=/etc/kubernetes/ssl/ca.pem \
- --peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem \
- --initial-advertise-peer-urls https://10.10.90.105:2380 \
- --listen-peer-urls https://10.10.90.105:2380 \
- --listen-client-urls https://10.10.90.105:2379,http://127.0.0.1:2379 \
- --advertise-client-urls https://10.10.90.105:2379 \
- --initial-cluster-token etcd-cluster- \
- --initial-cluster etcd-host0=https://10.10.90.105:2380,etcd-host1=https://10.10.90.106:2380,etcd-host2=https://10.10.90.107:2380 \
- --initial-cluster-state new \
- --data-dir=/var/lib/etcd
- Restart=on-failure
- RestartSec=
- LimitNOFILE=
- [Install]
- WantedBy=multi-user.target
配置注意事项:所有节点都必须配置此文件,并且注意下面4个注意事项。
1、IP地址除了initial-cluster 配置项是配置集群内3个地址的ip外,其他IP均为本机的IP。
2、配置下--name必须与--initial-cluster配置项里的的对应,比如图上配置就是我master的配置,name是etcd-host0,下面的IP对应的名称也是这个。
3、通过不同方式安装的软件Execstart配置项下的程序启动命令路径注意修改
4、WorkingDirectory工作目录需要实现创建,否则启动会报错。
4、创建etcd环境变量文件
文件位置:/etc/etcd/etcd.conf,yum安装完之后该文件会存在,删除重建即可。
- # [member]
- ETCD_NAME=infra1
- ETCD_DATA_DIR="/var/lib/etcd"
- ETCD_LISTEN_PEER_URLS="https://10.10.90.105:2380"
- ETCD_LISTEN_CLIENT_URLS="https://10.10.90.105:2379"
- #[cluster]
- ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.10.90.105:2380"
- ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
- ETCD_ADVERTISE_CLIENT_URLS="https://10.10.90.105:2379"
注意事项:
1、再次提醒ETCD_DATA_DIR一定要存在,其他的IP地址替换为本机的即可,maser及node节点都需要配置
2、ETCD_NAME按照etcd系统服务里面的配置一一对应,分别是infra1,infra2,infra3
5、设置开机启动及启动etcd
- systemctl daemon-reload
- systemctl enable etcd
- systemctl start etcd
- systemctl status etcd
6、检测集群工作情况
在任意一个节点,master或者node都可以,执行以下命令
- etcdctl \
- --ca-file=/etc/kubernetes/ssl/ca.pem \
- --cert-file=/etc/kubernetes/ssl/kubernetes.pem \
- --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
- cluster-health
如果输出类似如下如的情况,代表成功:
结果最后一行为 cluster is healthy
时表示集群服务正常
注意事项:
1、建议所有节点都运行一次进行检测,我在maser检点进行检测的时候发现master本身的几点都链接上,报unhealthy错误,查看报错后发现是使用了代理上网设置
当初为了在线软件设置的上网代理,需要关闭代理,取消配置参数,重启了服务器才检测成功。
2、防火墙务必关闭,否则会有链接不到etcd的问题。。
3、以后使用etcd查询数据都需要使用认证文件,查询格式:
- etcdctl \
- --ca-file=/etc/kubernetes/ssl/ca.pem \
- --cert-file=/etc/kubernetes/ssl/kubernetes.pem \
- --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
- cluster-health
否则出错,例如:
- [root@kube_master ssl]# etcdctl cluster-health
- failed to check the health of member 2f590aa6fa719c4b on https://10.10.90.105:2379: Get https://10.10.90.105:2379/health: x509: certificate signed by unknown authority
- member 2f590aa6fa719c4b is unreachable: [https://10.10.90.105:2379] are all unreachable
- failed to check the health of member 43ea47a48fb7ffce on https://10.10.90.106:2379: Get https://10.10.90.106:2379/health: x509: certificate signed by unknown authority
- member 43ea47a48fb7ffce is unreachable: [https://10.10.90.106:2379] are all unreachable
- failed to check the health of member d965bb336acbfc6c on https://10.10.90.107:2379: Get https://10.10.90.107:2379/health: x509: certificate signed by unknown authority
- member d965bb336acbfc6c is unreachable: [https://10.10.90.107:2379] are all unreachable
- cluster is unhealthy
Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群的更多相关文章
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- 用kubeadm创建高可用kubernetes集群后,如何重新添加控制平面
集群信息 集群版本:1.13.1 3个控制平面,2个worker节点 k8s-001:10.0.3.4 k8s-002:10.0.3.5 k8s-003:10.0.3.6 k8s-004:10.0.3 ...
- 高可用etcd集群(三节点) + ssl双向认证
# etcd下载地址 https://github.com/etcd-io/etcd/tags wget https://github.com/etcd-io/etcd/releases/downlo ...
- Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...
- 一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_185 2021年,君不言容器技术则已,欲言容器则必称Docker,毫无疑问,它是当今最流行的容器技术之一,但是当我们面对海量的镜像 ...
- 如何安装一个高可用K3s集群?
作者介绍 Janakiram MSV是Janakiram & Associates的首席分析师,也是国际信息技术学院的兼职教师.他也是Google Qualified Developer.亚马 ...
- 高可用Kubernetes集群-16. ansible快速部署
说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...
- 安装ORACLE高可用RAC集群11g执行root脚本的输出信息
安装ORACLE高可用RAC集群11g执行root脚本的输出信息 作者:Eric 微信:loveoracle11g [root@node1 ~]# /u01/app/oraInventory/orai ...
随机推荐
- MongoDB的web可视化管理工具
现在许多应用都使用MongoDB存储大量的业务数据,MongoDB基于文档式的存储,在大数据行业的应用还是很普遍的.MongoDB的客户端工具也很多,基于web的却不多,国产的就更少了,下面介绍的是一 ...
- Java-函数式编程(一)初识篇
开发者使用Java8编写复杂的集合处理算法,只需要简单的代码就能在多喝cpu上高效运行,这就是Lambda表达式的初衷. 提示:函数式编程和语言无关,它是一种思想,任何语言都可以实现函数式编程,区别只 ...
- Java对MySQL数据库进行连接、查询和修改(转)
Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...
- Ubuntu下自定义调整CPU工作频率(用于省电或提高性能都好用)
昨天高铁上拿T480切win10系统看电影,为了节电给细调了个省电策略(设置CPU性能30%),不知是不是因为这个原因,今天切回Ubuntu1604工作导致CPU工作频率非常低. 查阅了一下相关方法, ...
- require.js的基本概念及使用流程(1)
今天,我们来说一说requireJS的基本概念,在下一篇随笔中我们再去讨论讨论requireJS的使用步骤 这一篇都是一些概念性比较强的东西,希望大家擦亮自己的钛合金狗眼好好看看概念,好吧 首先,什么 ...
- 去除img默认的边框
//当img属性src没有值时,会有难看的边框和难看的一个小图 有什么办法去掉呢? <img src=" " /> //不要这样写 <img /> ...
- Excel indirect引用其它xlsx文件内容作为下拉框
效果如下图: 在第一个excel文件中有一个下拉框 这里面的选项,需要从另外一个Excel文件中读取内容,另外一个Excel文件如下: 实现的步骤如下: 1.新建一个Excel文件select.xls ...
- postman和接口自动化测试
1.postman测试接口 (1)首先安装postman 下载地址:https://www.getpostman.com/apps 选择对应版本下载,然后安装即可 (2)使用postman发送请求 比 ...
- 使用CDN做网站的内容加速
1.什么是CDN: CDN的全称是Content Delivery Network,中文的意思就是内容分发网络,简单的讲通过现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的 ...
- 2018-10-16 22:56:13 c language
2018-10-16 22:56:13 c language 我们把上面的步骤总结一下,可以发现一个完整的编程过程是: 编写源文件:这是编程的主要工作,我们要保证代码的语法 100% 正确,不能有任何 ...