kubernetes高可用集群部署 - 2. ETCD集群

2017-09-28  本文已影响898人  殷临风

一般而言, 单台etcd性能已经很稳定了, 但有时候, 还是担心意外的宕机情况, 所以在生产环境部署etcd集群还是很有必要的. 如果服务器紧张, 可以直接利用master主机, 当然最好的解决方案还是单独拿两台以上的服务器安装, 这里为了模拟生产情况, 还是不放在master主机上

1. 安装etcd
yum install -y etcd

# 编辑配置文件
vi /etc/etcd/etcd.conf
##############################################
# [member]
ETCD_NAME=k8s-sz-etcd1
ETCD_DATA_DIR="/var/lib/etcd/k8s-sz-etcd1.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.1.50:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.50:2379,http://127.0.0.1:2379"

# [cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.50:2380"
ETCD_INITIAL_CLUSTER="k8s-sz-etcd1=http://192.168.1.50:2380,k8s-sz-etcd2=http://192.168.1.51:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.50:2379"
##############################################

# 编辑启动配置项
vi /usr/lib/systemd/system/etcd.service
##############################################
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd \
    --name ${ETCD_NAME} \
    --data-dir ${ETCD_DATA_DIR} \
    --listen-client-urls ${ETCD_LISTEN_CLIENT_URLS} \
    --listen-peer-urls ${ETCD_LISTEN_PEER_URLS} \
    --advertise-client-urls ${ETCD_ADVERTISE_CLIENT_URLS} \
    --initial-advertise-peer-urls ${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
    --initial-cluster-token ${ETCD_INITIAL_CLUSTER_TOKEN} \
    --initial-cluster-state ${ETCD_INITIAL_CLUSTER_STATE} \
    --initial-cluster ${ETCD_INITIAL_CLUSTER} "  
##############################################

# 启动etcd服务
systemctl daemon-reload
systemctl start etcd

另一台服务器以同样的方式安装启动, 只不过把ip换成自己的, 名称改成对应的k8s-sz-etcd2. 注意参数ETCD_INITIAL_CLUSTER, 一定要以键值对的形式把etcd集群的其他服务器都加上.

启动ETCD集群时, 启动第一台, 会卡住, 先不管, 再启动另一台, 当第二台启动成功了, 前面一台也会成功

2. 当集群启动好后, 校验状态
etcdctl member list 
etcdctl cluster-health

如果要配置https, 需要自己配置证书, 这类资料很多, 这里不做介绍, 另外生产环境最好配置auth认证, 提升安全性

高可用部署系列

Kubernetes高可用集群部署 - 1. 生成证书
-> Kubernetes高可用集群部署 - 2. ETCD集群
Kubernetes高可用集群部署 - 3. kubectl工具配置
Kubernetes高可用集群部署 - 4. master集群
Kubernetes高可用集群部署 - 5. node集群
Kubernetes高可用集群部署 - 6. DNS配置

相关服务

Kubernetes配置secret拉取私仓镜像
Kubernetes目录挂载
Kubernetes Ingress使用
Kubernetes限制pod的cpu和内存
Helm部署Kubernetes应用
Kubernetes监控(Heapster)
Kubernetes监控(coreos/prometheus-operator)

上一篇下一篇

猜你喜欢

热点阅读