Kubernetes 1.20.15 单节点部署 etcd v3.5.0 YAML 代码示例
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 参数以适应您的实际需求
使用方法
- 将上述 YAML 代码保存为文件,例如 etcd.yaml
- 使用 kubectl 命令部署 etcd:
kubectl apply -f etcd.yaml
- 验证 etcd 部署成功
kubectl get pods -l app=etcd
总结
本文介绍了使用 StatefulSet 在 Kubernetes 1.20.15 环境下部署单节点 etcd v3.5.0 的方法,并提供了详细的 YAML 代码示例和参数说明。您可以根据自己的需求修改参数和配置,以适应不同的环境和场景。
原文地址: https://www.cveoy.top/t/topic/nlE4 著作权归作者所有。请勿转载和采集!