Доступ к базе данных с помощью pgAdmin в кластере Kubernetes - PullRequest
1 голос
/ 18 января 2020

В моей текущей среде не-Kubernetes, если мне нужен доступ к базе данных Postgres, я просто настраиваю туннель S SH с:

ssh -L 5432:localhost:5432 user@domain.com

I ' Я пытаюсь понять, как сделать нечто подобное в тестовом кластере Kubernetes, который я настраиваю в EKS, и это не представляет большой угрозы безопасности. Например, создание пути во входном контроле к порту базы данных - это ужасная идея.

Кластер будет настроен так, что Postgres находится в модуле, но все данные заявка на постоянный том, так что данные сохраняются при уничтожении модуля.

Как использовать pgAdmin для доступа к базе данных при такой настройке?

1 Ответ

2 голосов
/ 18 января 2020

Команда kubectl может пересылать TCP-порты в POD через kube-api

kubectl port-forward {postgres-pod-ID} 5432:5432

Если вы не используете пользователя cluster-admin, пользователю потребуется быть привязанным к роли, которая позволяет ему create pods/portforward в пространстве имен pods.

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pg-portforward
rules:
  - apiGroups: [""]
    resources: ["pods/portforward"]
    verbs: ["create"]
...