Kubernetes(K8s)安装部署过程(三)--创建高可用etcd集群

这里的etcd集群复用我们测试的3个节点,3个node都要安装并启动,注意修改配置文件

1、TLS认证文件分发:etcd集群认证用,除了本机有,分发到其他node节点

scp ca.pem kubernetes-key.pem kubernetes.pem [email protected]10.10.90.106:/etc/kubernetes/ssl
scp ca.pem kubernetes-key.pem kubernetes.pem [email protected]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-0   --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=5
LimitNOFILE=65536

[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错误,查看报错后发现是使用了代理上网设置

当初为了在线软件设置的上网代理,需要关闭代理,取消配置参数,重启了服务器才检测成功。

原文地址:https://www.cnblogs.com/netsa/p/8143665.html

时间: 2024-08-28 12:06:21

Kubernetes(K8s)安装部署过程(三)--创建高可用etcd集群的相关文章

kubeadm配置高可用etcd集群

操作系统为ubuntu18 kubernetes版本为v1.15.1 k8s默认在控制平面节点上的kubelet管理的静态pod中运行单个成员的etcd集群,但这不是高可用的方案. etcd高可用集群至少需要三个成员组成. etcd默认端口为2379,2380,三个节点的这两个端口都要能通. 可以在kubeadm配置文件更改默认端口. 这个实验有五个服务器. 我开的腾讯云香港服务器做的实验,网速很快,ssh稳定. 百度云没测. 阿里云测试不给力. 推荐腾讯云. k8s1: master1? k8

06-4.部署高可用 kube-scheduler 集群

06-4.部署高可用 kube-scheduler 集群 本文档介绍部署高可用 kube-scheduler 集群的步骤. 该集群包含 3 个节点,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态.当 leader 节点不可用后,剩余节点将再次进行选举产生新的 leader 节点,从而保证服务的可用性. 为保证通信安全,本文档先生成 x509 证书和私钥,kube-scheduler 在如下两种情况下使用该证书: 与 kube-apiserver 的安全端口通信; 在安全

06-3.部署高可用 kube-controller-manager 集群

06-3.部署高可用 kube-controller-manager 集群 本文档介绍部署高可用 kube-controller-manager 集群的步骤. 该集群包含 3 个节点,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态.当 leader 节点不可用后,剩余节点将再次进行选举产生新的 leader 节点,从而保证服务的可用性. 为保证通信安全,本文档先生成 x509 证书和私钥,kube-controller-manager 在如下两种情况下使用该证书: 与

部署高可用 kube-controller-manager 集群

本文档介绍部署高可用 kube-controller-manager 集群的步骤. 该集群包含 3 个节点,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态.当 leader 节点不可用后,剩余节点将再次进行选举产生新的 leader 节点,从而保证服务的可用性. 为保证通信安全,本文档先生成 x509 证书和私钥,kube-controller-manager 在如下两种情况下使用该证书: 与 kube-apiserver 的安全端口通信时; 在安全端口(https,1

高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用 rabbitmq 集群 消息队列 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.AMQP的主

搭建高可用mongodb集群(三)—— 深入副本集内部机制

http://www.lanceyan.com/tech/mongodb_repset2.html 在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点. 官方说副本集数量最好是奇数,为什么? mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性? mongodb的故障转移会不会无故自动发生?什么条件会

安装ORACLE高可用RAC集群11g校验集群安装的可行性输出信息

安装ORACLE高可用RAC集群11g校验集群安装的可行性输出信息 作者:Eric 微信:loveoracle11g [[email protected] grid]$ ./runcluvfy.sh stage -pre crsinst -fixup -n node1,node2 -verbose Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachabil

构建高可用ZooKeeper集群

ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 ZooKeeper 便捷的使用方式.卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop.HBase.Kafka 和 Dubbo 等大型分布式系统中. 本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式.集群组成.容灾和水平扩容四方面逐步深入,最终构建

构建高可用ZooKeeper集群(转载)

ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 ZooKeeper 便捷的使用方式.卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop.HBase.Kafka 和 Dubbo 等大型分布式系统中. 本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式.集群组成.容灾和水平扩容四方面逐步深入,最终构建