Убедитесь, что услуги существуют

Я собираюсь развернуть Keycloak на своем кластере K8S и в качестве базы данных выбрал PostgreSQL.

Чтобы скорректировать бизнес-требования, мы должны добавить в Keycloak дополнительные функции, например настраиваемую тему и т. Д. Это означает, что для каждого изменения Keycloak мы будем запускать конвейер CI/CD. Мы используем Drone для CI и ArgoCD для CD.

В конвейере, прежде чем он попадет в часть CD, мы хотели бы убедиться, что PostgreSQL запущен и работает.
Вопрос в том, существует ли инструмент для K8S, который мы можем проверить, если определенные службы запущены и работают.

2 ответа

Решение

"Готово"!= "Существует"

1. Чтобы проверить, существует ли услуга, просто выполните kubectl get service <svc>

2: Чтобы проверить, есть ли активные конечные точки, выполните kubectl get endpoints <svc>

3: Вы также можете проверить, находятся ли опоры в состоянии готовности.

2 и 3 требует, чтобы зонд готовности был правильно настроен на модуле / развертывании

Радек прав в своем ответе, но я хотел бы расширить его с помощью официальных документов. Чтобы убедиться, что сервис существует и работает правильно, вам необходимо:

  • Убедитесь, что модули действительно работают и обслуживают: kubectl get pods -o go-template='{{range .items}}{{.status.podIP}}{{"\n"}}{{end}}'

  • Проверить, существует ли Сервис: kubectl get svc

  • Проверьте, существуют ли Endopints: kubectl get endopints

  • При необходимости проверьте, работает ли Сервис по DNS-имени: nslookup hostnames (из модуля в том же пространстве имен) или nslookup hostnames.<namespace> (если он в другом)

  • При необходимости проверьте, работает ли Сервис по IP: for i in $(seq 1 3); do wget -qO- <IP:port> done

  • Убедитесь, что Сервис определен правильно: kubectl get service <service name> -o json

  • Проверяем, работает ли kube-proxy: ps auxw | grep kube-proxy

Если что-либо из вышеперечисленного вызывает проблему, вы можете найти шаги по устранению неполадок по ссылке выше.

Что касается вашего вопроса в комментариях: я не думаю, что есть более простой способ, учитывая, что вам нужно убедиться, что все работает нормально. Вы можете пропустить некоторые шаги, но это будет зависеть от вашего варианта использования.

Я надеюсь, что это помогает.

Другие вопросы по тегам