Возможно ли установить одно постоянное имя модуля в развертывании kubernetes?

#kubernetes

#kubernetes

Вопрос:

Можно ли избежать этих хэшей в имени модуля?

 >  kubectl get pods
NAME                                              READY   STATUS      RESTARTS   AGE
nginx-ingress-nginx-controller-599c688b77-nbvds   1/1     Running     0          11d
pgadmin-756f5949ff-mbkk9                          1/1     Running     0          11d
postgres-postgresql-0                             1/1     Running     0          11d
redis-master-5d9cfb54f8-8pbgq                     1/1     Running     43         4d
  

Ответ №1:

В соответствии с вашими требованиями Statefulset может удовлетворить ваши потребности. При использовании deployment это невозможно. Statefulset присваивает имя модулям постепенно, например pgadmin-0, pgadmin-1 и так далее. Я бы настоятельно рекомендовал проверить этот раздел документации, поскольку statefulset предлагает очень классную функцию, такую как последовательное развертывание модулей и удаление их также в одном модуле по одному за раз и т.д.

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

Ответ №2:

Нет, невозможно избежать хэша в имени модуля, если вы используете развертывание. Вы можете добавлять собственные метки / аннотации и выбирать модули с этими метками или работать с ними.

Модули, созданные с помощью statefulset, имеют уникальный идентификатор, который состоит из порядкового номера, т. Е. redis-master-0 redis-master-1 redis-master-2 и т.д. Если вы используете рабочую нагрузку с отслеживанием состояния, такую как redis, я бы предложил использовать statefulset