下面是部署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/etcdvolumeMountsvolumes 部分表示将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实例,还需要进行其他配置。

kubernetes 12015 里部署etcd v350使用 Deployment 指定挂载目录单点部署并优化etcd性能。给出yaml代码

原文地址: https://www.cveoy.top/t/topic/b0Uf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录