mirror of
https://github.com/slurm-personal/school-dev-k8s.git
synced 2026-06-27 13:50:24 +00:00
2.8 KiB
2.8 KiB
StatefulSet
Создаем стэйтфулсет
- Применяем каталог с манифестами
kubectl apply -f rabbitmq-statefulset
В ответ должны увидеть
configmap/rabbitmq-config created
role.rbac.authorization.k8s.io/endpoint-reader created
rolebinding.rbac.authorization.k8s.io/endpoint-reader created
service/rabbitmq created
serviceaccount/rabbitmq created
statefulset.apps/rabbitmq created
- Смотрим на поды
kubectl get pod
Видим:
NAME READY STATUS RESTARTS AGE
rabbitmq-0 0/1 ContainerCreating 0 31s
Поды начали создаваться по одному, с нулевого Ждем, пока get pod не вернет все три работающих пода Должно быть так:
NAME READY STATUS RESTARTS AGE
rabbitmq-0 1/1 Running 0 10m
rabbitmq-1 1/1 Running 0 7m
- Проверяем что под каждый pod создался pvc
kubectl get pvc
Видим:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-rabbitmq-0 Bound pvc-d9030631-496e-11e9-96e5-4201ac101193 2Gi RWO standard 10m
data-rabbitmq-1 Bound pvc-01c40ac5-496f-11e9-96e5-4201ac101193 2Gi RWO standard 7m
Проверяем сервис
- Запускаем под для тестов
kubectl run -t -i --rm --image centosadmin/utils:0.3 test bash
- Дальше уже из этого пода выполняем:
nslookup rabbitmq
В ответ видим, что DNS возвращает IP всех подов (IP подов можно проверить в соседней консоли через kubectl get pod -o wide)
Server: 10.107.0.10
Address: 10.107.0.10#53
Name: rabbitmq.default.svc.cluster.local
Address: 10.107.16.12
Name: rabbitmq.default.svc.cluster.local
Address: 10.107.16.13
Name: rabbitmq.default.svc.cluster.local
Address: 10.107.18.24
- Пробуем резолвить конкретный инстанс
nslookup rabbitmq-0.rabbitmq
В ответ видим, что DNS возвращает IP пода rabbitmq-0
Server: 10.107.0.10
Address: 10.107.0.10#53
Name: rabbitmq-0.rabbitmq.default.svc.cluster.local
Address: 10.107.16.12
- Выходим из тестового пода
exit
- Чистим за собой кластер
kubectl delete -f rabbitmq-statefulset
kubectl delete pvc --all
Обязательно удаляем PVC отдельно! Удаление стэйтфулсета не чистит PVC