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)