
配置StatefulSets,
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
labels:
app: web
spec:
serviceName: web # 关键:将StatefulSet与Headless Service关联,提供稳定的网络身份
replicas: 2
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
name: http
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html # NGINX默认的web根目录
# 关键:定义PersistentVolumeClaims (PVCs) 模板
# StatefulSet将为每个Pod自动创建独立的PVC,并以 <volume-name>-<statefulset-name>-<ordinal-index> 命名
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
storageClassName: standard
配置无头服务,
apiVersion: v1
kind: Service
metadata:
name: web
labels:
app: web
spec:
ports:
- port: 80
name: http
targetPort: 80
clusterIP: None # 关键:声明这是一个Headless Service,不分配Cluster IP
selector:
app: web