搭建k8s etcd高可用详细步骤
时间: 2023-10-14 09:05:42 浏览: 154
ansible搭建高可用k8s.html
Kubernetes集群中,etcd扮演着非常重要的角色,用于存储集群状态和元数据。为保证集群的高可用性,需要搭建etcd高可用集群。下面是搭建k8s etcd高可用的详细步骤:
1. 安装etcd
在所有etcd节点上安装etcd。可以从etcd的官方网站下载二进制文件进行安装。在安装完成后,需要在每个etcd节点上创建一个etcd配置文件,配置文件示例如下:
```
# cat /etc/etcd/etcd.conf
# etcd configuration
# [member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
ETCD_LISTEN_PEER_URLS="http://192.168.0.1:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.0.1:2379"
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.0.1:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.0.1:2379"
ETCD_INITIAL_CLUSTER="default=http://192.168.0.1:2380,default=http://192.168.0.2:2380,default=http://192.168.0.3:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
```
在每个etcd节点上需要修改配置文件中的IP地址和端口号,以及节点的名称。需要注意的是,ETCD_INITIAL_CLUSTER中需要列出集群中所有的etcd节点。
2. 启动etcd
在所有etcd节点上启动etcd服务:
```
# systemctl enable etcd
# systemctl start etcd
```
3. 配置etcd集群自动发现
在每个etcd节点上创建一个etcd集群自动发现的配置文件,配置文件示例如下:
```
# cat /etc/systemd/system/etcd2.service.d/etcd2.conf
[Service]
Environment=ETCDCTL_ENDPOINTS=http://192.168.0.1:2379,http://192.168.0.2:2379,http://192.168.0.3:2379
```
在每个etcd节点上需要修改配置文件中的IP地址和端口号,以及集群中所有etcd节点的地址。
4. 配置kubeadm
在kubeadm配置文件中,需要配置etcd集群的地址和端口号,以及etcd集群中的所有节点。配置文件示例如下:
```
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
etcd:
external:
endpoints:
- http://192.168.0.1:2379
- http://192.168.0.2:2379
- http://192.168.0.3:2379
caFile: /etc/kubernetes/pki/etcd/ca.crt
certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt
keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key
```
在配置文件中需要修改etcd集群的地址和端口号,以及etcd集群中所有节点的地址。
5. 创建kubernetes集群
使用kubeadm创建kubernetes集群时,需要指定etcd集群的地址和端口号,以及etcd集群中所有节点的地址。命令示例如下:
```
# kubeadm init --config=kubeadm.yaml
```
在创建集群时需要注意,etcd集群中至少需要有3个节点才能保证高可用性。如果etcd集群中有节点出现故障,可以在其它的etcd节点上执行etcd容器恢复。
阅读全文