Убедитесь, что услуги существуют
Я собираюсь развернуть 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
Если что-либо из вышеперечисленного вызывает проблему, вы можете найти шаги по устранению неполадок по ссылке выше.
Что касается вашего вопроса в комментариях: я не думаю, что есть более простой способ, учитывая, что вам нужно убедиться, что все работает нормально. Вы можете пропустить некоторые шаги, но это будет зависеть от вашего варианта использования.
Я надеюсь, что это помогает.