Создание StatefulSet
Создайте файл с именем statefulset.yaml
со следующим содержимым:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "web"
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.7
ports:
- containerPort: 80
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
В этом файле мы определяем StatefulSet с именем web
, который создает три реплики Pod с NGINX. Мы также определяем сервис (service) с именем web
, который выбирает Pod с NGINX с использованием метки app: nginx
. Наконец, мы определяем шаблон запроса на постоянный диск (persistent volume claim template) для данных Pod с NGINX.
Для создания StatefulSet выполните следующую команду:
kubectl apply -f statefulset.yaml
Вы можете проверить статус StatefulSet, выполнив следующую команду:
kubectl get statefulsets
После запуска StatefulSet вы можете получить доступ к Pod с NGINX, выполнив следующие команды:
kubectl get pods
kubectl exec -it web-0 -- /bin/bash
Замените web-0
именем любого Pod с NGINX, созданного StatefulSet.
Поздравляем, вы успешно создали StatefulSet в Kubernetes!