博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群
阅读量:6477 次
发布时间:2019-06-23

本文共 4034 字,大约阅读时间需要 13 分钟。

 

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

 

 

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

scp ca.pem kubernetes-key.pem kubernetes.pem root@10.10.90.106:/etc/kubernetes/sslscp 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 ServerAfter=network.targetAfter=network-online.targetWants=network-online.targetDocumentation=https://github.com/coreos[Service]Type=notifyWorkingDirectory=/var/lib/etcd/EnvironmentFile=-/etc/etcd/etcd.confExecStart=/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/etcdRestart=on-failureRestartSec=5LimitNOFILE=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=infra1ETCD_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-reloadsystemctl enable etcdsystemctl start etcdsystemctl 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-healthfailed 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 authoritymember 2f590aa6fa719c4b is unreachable: [https://10.10.90.105:2379] are all unreachablefailed 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 authoritymember 43ea47a48fb7ffce is unreachable: [https://10.10.90.106:2379] are all unreachablefailed 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 authoritymember d965bb336acbfc6c is unreachable: [https://10.10.90.107:2379] are all unreachablecluster is unhealthy

 

转载于:https://www.cnblogs.com/netsa/p/8143665.html

你可能感兴趣的文章
Flex布局
查看>>
Material Design之 AppbarLayout 开发实践总结
查看>>
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>
正则表达式分解剖析(一文悟透正则表达式)
查看>>
解决UILable标点符号居中的问题
查看>>
HTML5新特性教程
查看>>
ImageOptim-无损图片压缩Mac版
查看>>
12 Go语言map底层浅析
查看>>
vue-resumer 项目中 element-ui 遇到的 textarea autosize 问题
查看>>
以主干开发作为持续交付的基础
查看>>
PHP扩展库PEAR被攻击,近半年下载者或被影响
查看>>
传统运维团队转型应该注意哪些问题?
查看>>