Как я могу подключиться к своему модулю mysql или узлу mysql в k8s? - PullRequest
0 голосов
/ 10 мая 2019

Я развернул модуль mysql на своем k8s. это конфиг, Я запутался насчет портов, вот так:

kind: Deployment
...
   containers:
     - ports:
        - containerPort: 3306  # @1
---

apiVersion: v1
kind: Service 
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  selector:
    app: mysql

  # way 1
  ports:
    - port: 3306  # @2

      targetPort: 3306  # @3

  # way 2
  type: NodePort
  ports: 
    - port: 3306
      targetPort: 3306
      nodePort: 30600


@ Question1. кто прокси этот порт @вопрос 2. что это за порт? Я имею в виду, что контейнер открыл порт 3306, и служба также открыта. В моем единственном узле они не конфликтуют? @ Вопрос3. этот порт значит для порта контейнер выставленный?

question4: когда я разверну это с помощью способа 1. как я могу зайти на мой сервер MySQL из модулей и моего локального компьютера.

question5: когда я разверну это способом 2. Как я могу посетить мой сервер MySQL из модулей и моего localMachine.

1 Ответ

1 голос
/ 10 мая 2019
  1. Модуль прослушивает порт, порт прокси-серверов службы.
  2. Модуль прослушивает порт 3306, а порт 3306 только прокси-сервера службы.Служба не прослушивает порт, это просто простое правило iptables.
  3. Когда вы создаете службу ClusterIP по умолчанию, вы можете посетить свою БД по имени хоста "mysql" из pods.Из-за пределов Kubernetes вы не сможете получить доступ к БД, если не выполните «kubectl port-forward».
  4. Когда вы создаете сервис NodePort, вы все равно можете посещать свою БД по имени хоста «mysql» из модулей, но также можете посещать БДиспользуя любой узел IP + nodePort.Поэтому, если ваш узел имеет адрес 192.168.1.10, а ваш nodePort - 30600, вы должны подключиться к БД по номеру 192.168.1.10:30600.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...