Kubernetes 1.20.15 单节点部署 etcd v3.5.0 YAML 代码示例

本文提供 Kubernetes 1.20.15 环境下,使用 StatefulSet 部署单节点 etcd v3.5.0 的 YAML 代码示例。包含 Service 定义和容器配置,并详细介绍了每个参数的含义和作用。

部署 YAML 代码

以下是部署 etcd v3.5.0 单节点的 YAML 代码:

apiVersion: v1
kind: Service
metadata:
  name: etcd
  labels:
    app: etcd
spec:
  ports:
  - port: 2379
    name: client
  - port: 2380
    name: server
  selector:
    app: etcd
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: etcd
spec:
  serviceName: etcd
  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:
        - --advertise-client-urls=http://$(POD_NAME).etcd:2379
        - --listen-client-urls=http://0.0.0.0:2379
        - --initial-advertise-peer-urls=http://$(POD_NAME).etcd:2380
        - --listen-peer-urls=http://0.0.0.0:2380
        - --initial-cluster-state=new
        - --initial-cluster=etcd-0=http://etcd-0.etcd:2380
        - --name=$(POD_NAME)
        ports:
        - containerPort: 2379
          name: client
        - containerPort: 2380
          name: server
        volumeMounts:
        - name: etcd-data
          mountPath: /etcd-data
      volumes:
      - name: etcd-data
        hostPath:
          path: /var/lib/etcd
  volumeClaimTemplates:
  - metadata:
      name: etcd-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

参数说明

  • service.spec.ports: 定义 etcd 的服务端口,分别为客户端端口 2379 和服务端端口 2380
  • statefulset.spec.replicas: 定义 etcd 集群节点数,这里设置为 1 代表单节点
  • statefulset.spec.template.spec.containers.image: 设置 etcd 的镜像,这里使用 quay.io/coreos/etcd:v3.5.0
  • statefulset.spec.template.spec.containers.args: 设置 etcd 的启动参数,包括:
    • --advertise-client-urls: 公告客户端访问地址
    • --listen-client-urls: 监听客户端访问地址
    • --initial-advertise-peer-urls: 公告集群成员之间通信地址
    • --listen-peer-urls: 监听集群成员之间通信地址
    • --initial-cluster-state: 设置集群初始状态为 new
    • --initial-cluster: 定义集群成员信息,这里只包含一个节点 etcd-0
    • --name: 设置节点名称,使用 POD_NAME 环境变量
  • statefulset.spec.template.spec.containers.ports: 定义容器端口,与 service 中的端口对应
  • statefulset.spec.template.spec.containers.volumeMounts: 定义数据卷挂载路径
  • statefulset.spec.volumeClaimTemplates: 定义数据卷的存储大小和访问模式,这里设置存储大小为 1Gi,访问模式为 ReadWriteOnce

注意事项

  • 使用 hostPath 数据卷,确保挂载路径在所有节点上都存在
  • 如果需要使用持久化存储,可以将 hostPath 替换为 PersistentVolumeClaim
  • 调整 etcd 参数以适应您的实际需求

使用方法

  1. 将上述 YAML 代码保存为文件,例如 etcd.yaml
  2. 使用 kubectl 命令部署 etcd:
kubectl apply -f etcd.yaml
  1. 验证 etcd 部署成功
kubectl get pods -l app=etcd

总结

本文介绍了使用 StatefulSet 在 Kubernetes 1.20.15 环境下部署单节点 etcd v3.5.0 的方法,并提供了详细的 YAML 代码示例和参数说明。您可以根据自己的需求修改参数和配置,以适应不同的环境和场景。

Kubernetes 1.20.15 单节点部署 etcd v3.5.0 YAML 代码示例

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

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