Похоже, проблема с подключением.
Сначала было бы хорошо посмотреть на вывод программы Java.
Первые простые проверки на уровне Kubernetes, чтобы убедиться, что ключевые компоненты живы:
$ kubectl get deployments
$ kubectl get services
$ kubectl get pods
Дополнительные проверки могут выполняться внутри контейнера, в котором работает ваше Java-приложение.
Возможный подход ниже.
Список развертываний вашего приложения и их меток:
$ kubectl get deployments --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
hello-node 2/2 2 2 1h app=hello-node
Получив этикетку, вы можете перечислить соответствующие капсулы и их контейнеры:
$ LABEL=hello-node; kubectl get pods -l app=$LABEL -o custom-columns=POD:metadata.name,CONTAINER:spec.containers[*].name
POD CONTAINER
hello-node-55b49fb9f8-7tbh4 hello-node
hello-node-55b49fb9f8-p7wt6 hello-node
Теперь можно запускать основные диагностические команды из контейнера приложения Java.
Ping может не достичь цели, но почти всегда доступен в контейнере и выполняет примитивную проверку разрешения DNS.
Службы из того же пространства имен должны быть доступны через короткое имя DNS.
Службы из других пространств имен внутри того же кластера Kubernetes должны быть доступны через внутреннее полное доменное имя.
$ kubectl exec hello-node-55b49fb9f8-p7wt6 -c hello-node -- ping -c1 hello-node
$ kubectl exec hello-node-55b49fb9f8-p7wt6 -c hello-node -- ping -c1 hello-node.default.svc.cluster.local
$ kubectl exec hello-node-55b49fb9f8-p7wt6 -c hello-node -- mysql -u [username] -p [dbname] -e [query]
С этого момента диагностика подключений очень похожа на сервер с «голым железом», за исключением того факта, что вы ограничены инструментами, доступными внутри контейнера. Вы можете установить недостающие пакеты в контейнер по мере необходимости.
Как только вы получите больше диагностической информации, вы поймете, что проверять дальше.