В настоящее время у меня развернута диаграмма шлема Hashicorp Vault, версия 0.8.0. Работает как задумано, запускаю port-forward svc/vault 8200:8200 -n vault
и захожу с vault login -tls-skip-verify
, pod не крашится, проблем нет.
Я проверял конфигурации в кластере, поэтому хотел проверить доступ к Vault из другого пространства имен в том же кластере. dig vault.vault.svc.cluster.local
решается на правильную конструкцию обслуживания. Однако, когда я запускаю curl -v -k https://vault.vault.svc.cluster.local:8200/v1/sys/health
, я получаю отказ в соединении.
Я запускаю кластер AKS в Kubernetes v1.18 с настройками политики Azure по умолчанию и Azure CNI. Что может вызвать эту проблему с отказом в соединении?
ваше хранилище работает на HTTPS? пожалуйста, попробуйте curl с HTTP вместо HTTPS. если это HTTPS, вы получаете ошибку плохого сертификата?
port-forward работает в том же сетевом пространстве имен, что и контейнер, поэтому он может получать доступ к вещам, прослушивающим «localhost», но все остальное в kubernetes требует, чтобы контейнер прослушивал 0.0.0.0, чтобы быть доступным из-за пределов Pod.
Спасибо @mdaniel, это решило проблему!
Комментарий @mdaniel привел меня к эффективному решению проблемы. Я удалил поля address
и cluster_address
в блоках конфигурации прослушивателя TCP, так как забыл, что Vault прослушивает только 127.0.0.1. Я поставил их обратно и проблема решилась.
Можете ли вы получить объекты NetworkPolicy из пространства имен Vault и вставить их для информации, которая может иметь некоторые подсказки!