K8S StatefulSet控制器部署有状态应用

  • yaml配置文件(nginx)
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx-statefulset
  namespace: default
spec:
  serviceName: nginx
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
  • 需要修改的地方

先创建一个“headless”的Service,即service显示的将ClusterIP设置为none

clusterIP: None

K8S StatefulSet控制器部署有状态应用_第1张图片

使用StatefulSet控制器

kind: StatefulSet

K8S StatefulSet控制器部署有状态应用_第2张图片

 

  • 部署应用:

kubectl apply -f nginx-status.yaml

可以看到新部署的应用cluster-ip 为 None

K8S StatefulSet控制器部署有状态应用_第3张图片

  • 删除应用

kubectl delete statefulset nginx-statefulset

K8S StatefulSet控制器部署有状态应用_第4张图片

你可能感兴趣的:(k8s,kubernetes,nginx,docker)