kubernetes 12015 里部署etcd v350使用 Deployment 指定挂载目录单点部署并优化etcd性能。给出yaml代码
下面是部署etcd v3.5.0的yaml代码,包括指定挂载目录、单点部署和优化etcd性能的配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: etcd
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: etcd
template:
metadata:
labels:
app: etcd
spec:
containers:
- name: etcd
image: quay.io/coreos/etcd:v3.5.0
command:
- /usr/local/bin/etcd
args:
- --name=etcd-0
- --data-dir=/var/lib/etcd
- --listen-client-urls=http://0.0.0.0:2379
- --advertise-client-urls=http://0.0.0.0:2379
- --listen-peer-urls=http://0.0.0.0:2380
- --initial-advertise-peer-urls=http://0.0.0.0:2380
- --initial-cluster=etcd-0=http://0.0.0.0:2380
- --initial-cluster-token=etcd-cluster-1
- --initial-cluster-state=new
- --auto-compaction-retention=1
- --heartbeat-interval=100
- --election-timeout=500
- --auto-tls=false
- --peer-auto-tls=false
- --client-cert-auth=false
- --peer-client-cert-auth=false
volumeMounts:
- name: etcd-data
mountPath: /var/lib/etcd
volumes:
- name: etcd-data
hostPath:
path: /data/etcd
type: DirectoryOrCreate
解释一下上面的配置:
replicas: 1表示只部署一个etcd实例,即单点部署。--name=etcd-0和--initial-cluster=etcd-0=http://0.0.0.0:2380表示将etcd实例命名为etcd-0,并将其作为集群的唯一成员。--data-dir=/var/lib/etcd和volumeMounts和volumes部分表示将etcd数据目录挂载到容器的/var/lib/etcd路径,同时使用hostPath将宿主机的/data/etcd目录挂载到容器的/var/lib/etcd路径,以便持久化etcd数据。--auto-compaction-retention=1表示开启自动压缩,并保留最近1个小时内的数据。--heartbeat-interval=100和--election-timeout=500表示设置心跳间隔为100毫秒,选举超时时间为500毫秒,以优化etcd性能。
需要注意的是,上面的配置只适用于单点部署,如果需要部署多个etcd实例,还需要进行其他配置。
原文地址: https://www.cveoy.top/t/topic/b0Uf 著作权归作者所有。请勿转载和采集!