Синопсис
Обычно, что некоторые ваши рабочие нагрузки подключаются к внешним сервисам, таким как базы данных, которые запускаются вне кластера Kubernetes. Эти внешние службы обычно защищены и развернуты в частной подсети.
Моя команда в настоящее время использует двигатель Google Kubernetes, и мы используем GCP Creamplestore (Redis в качестве обслуживания) для кэширования. Для нас надежно доступа к Treamstore, нам придется предоставить виртуальную машину, которая будет выступать в качестве хозяина Бастиона, но мы нашли лучший подход к решению с этим.
Переадресация порта с прокси TCP
Все наши услуги работают в Кубебене, а как можно больше, мы хотим придерживаться kubectl все
Рабочий процесс при работе с нашими услугами. Все благодаря Tecnativa/TCP-прокси , это делает TCP прокси действительно легким с Docker.
Таким образом, в основном любые внешние службы, которые могут получить доступ к кластеру Kubernetes, также можно получить доступ к локально, развернув эту присоску.
Предупреждение: Это может быть ошибочный недостаток в вашем случае, но не для нас.
apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: redis-proxy name: redis-proxy namespace: default spec: selector: matchLabels: app: redis-proxy template: metadata: labels: app: redis-proxy spec: containers: - image: tecnativa/tcp-proxy:latest imagePullPolicy: Always env: - name: LISTEN value: ":6379" # The listen address that it will be exposed to. - name: TALK value: "10.1.1.5:6379" # Private address of Memorystore. name: redis-proxy resources: requests: cpu: 10m memory: 10m dnsPolicy: ClusterFirst restartPolicy: Always securityContext: {}
С развернутым TCP-прокси, теперь мы можем просто портировать POD TCP-прокси.
kubectl port-forward redis-proxy 6379:6379
И доступа к Memorystore локально используя Redis-Cli
Отказ
redis-cli -p 6379
Оригинал: «https://dev.to/bzon/kubectl-port-forward-external-services-using-tcp-proxy-in-kubernetes-4li2»