Невозможно получить доступ к серверу хранилища из разных модулей, работающих в кластере kubernetes
Я настроил сервер хранилища hashicorp в kubernetes. Сервер Vault работает нормально при доступе через CLI или UI. Я создал еще один модуль, который запускает мое приложение. Но я не могу получить доступ к Vault Server из моего приложения, которое работает на другом модуле.
Я пытался использовать Cluster-IP: Порт, IP: Порт, но всегда вижу ошибку Соединение отказано.
service.yaml
apiVersion: v1
kind: Service
metadata:
name: vault
labels:
run: vault
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: 8200
protocol: TCP
name: vault
selector:
run: vault
deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vault
labels:
run: vault
spec:
replicas: 1
template:
metadata:
labels:
run: vault
spec:
containers:
- name: vault
command: ["vault", "server", "-config", "/vault/config/vault.hcl"]
image: "vault"
imagePullPolicy: IfNotPresent
securityContext:
capabilities:
add:
- IPC_LOCK
volumeMounts:
- name: configurations
mountPath: /vault/config/vault.hcl
subPath: vault.hcl
volumes:
- name: configurations
configMap:
name: vault
I need to access vault server from an application running in different pod within same cluster.
1 ответ
Пожалуйста, опишите, как вы пытаетесь получить доступ к Vault из разных модулей?
В противном случае, если вы не видите никаких ошибок в ваших модулях, вам необходимо иметь доступ к Vault из других модулей в том же пространстве имен через имя службы или адрес ClusterIP, как вы упомянули.
В целях устранения неполадок, я бы посоветовал вам запустить образец модуля Vault для тестирования, как показано ниже
kubectl run vault-test --image=vault -l "app=vault-test"
Затем запустите exec для оболочки нового модуля через:
kubectl exec -it $(kubectl get pods --namespace default -l "app=vault-test" -o jsonpath="{.items[0].metadata.name}") sh
Затем выполните команды ниже, чтобы увидеть тест:
export VAULT_ADDR=http://vault:8080
# "хранилище" - это название вашей службы
ИЛИ ЖЕ
export VAULT_ADDR=http://<ClusterIP of vault service>:8080
затем
vault status
вам нужно увидеть вывод, как показано ниже
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 1
Threshold 1
Version 1.0.1
Cluster Name vault-cluster-f3e6e68d
Cluster ID 0280993f-5aee-4f97-b8e5-53f652fdc5ad
HA Enabled false
Пожалуйста, дайте мне знать о состоянии этого устранения неполадок.