Stateful Set

Stateful Set — это объект API, используемый для управления приложениями и отслеживания их состояния. StatefulSet управляет развертыванием и масштабированием подов приложения.

Stateful Set необходимо использовать, чтобы размещать традиционные приложения с сохранением состояния stateful-приложения. Так, каждый под в составе StatefulSet будет сохранять свое DNS-имя, IP-адрес и, если запрашивается, выделенное постоянное хранилище (PVC, Persistent Volume Claim).

Чтобы создать Stateful Set:

  1. Перейдите на платформу Опеншифт для администратора.

  2. Перейдите в меню Workloads → StatefulSets.

  3. Нажмите на кнопку Сreate StatefulSet.

  4. Внесите необходимые изменение в файле YAML.

    Пример StatefulSet:

    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: web
    spec:
     selector:
       matchLabels:
         app: nginx # has to match .spec.template.metadata.labels
     serviceName: "nginx"
     replicas: 3 # by default is 1
     template:
       metadata:
         labels:
          app: nginx # has to match .spec.selector.matchLabels
       spec:
         terminationGracePeriodSeconds: 10
         containers:
         - name: nginx
         image: k8s.gcr.io/nginx-slim:0.8
       ports:
         - containerPort: 80
         name: web
       volumeMounts:
         - name: www
       mountPath: /usr/share/nginx/html
       volumeClaimTemplates:
       - metadata:
           name: www
       spec:
         accessModes: [ "ReadWriteOnce" ]
         storageClassName: "my-storage-class"
       resources:
         requests:
         storage: 1Gi
    
  5. Нажмите на кнопку Create.

См.также

Подробнее о StatefulSet смотрите здесь.