Предоставить доступ к внешней службе из кластера - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь установить соединение с моими базами данных, которые находятся вне кластера GKE, внутри кластера.

Я прочитал различные учебные пособия, включая https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-mapping-external-services и несколько вопросов SO, хотя проблема сохраняется.

Вот пример конфигурации, с которой я пытаюсь настроить подключение kafka:

---
kind: Endpoints
apiVersion: v1
metadata:
  name: kafka
subsets:
  - addresses:
      - ip: 10.132.0.5
    ports:
      - port: 9092

---
kind: Service
apiVersion: v1
metadata:
  name: kafka
spec:
  type: ClusterIP
  ports:
  - port: 9092
    targetPort: 9092

Я могу получить какой-то ответ, подключившись напрямую через nc 10.132.0.5 9092 от сама виртуальная машина узла, но если я создаю модуль, скажем, по kubectl run -it --rm --restart=Never alpine --image=alpine sh, то я не могу подключиться изнутри модуля, используя nc kafka 9092. Все библиотеки в моем коде терпят неудачу из-за тайм-аута, поэтому, похоже, это какая-то проблема с маршрутизацией.

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

1 Ответ

1 голос
/ 19 января 2020

Решил, проблема была в моем понимании того, как работает GCP.

Чтобы решить эту проблему, мне пришлось добавить правило брандмауэра, которое разрешало все входящие трафики c из внутренней сети GKE. В моем случае это был 10.52.0.0/24 диапазон адресов.

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...