Kubernetes — в модули не поступает интернет

#networking #kubernetes #kubernetes-pod

#сеть #kubernetes #kubernetes-pod

Вопрос:

Я уже некоторое время работаю в Kubernetes, и у меня есть докер-образ приложения wildfly. В stanalone.xml для wildfly подключение к источникам данных определяется следующим образом:

 <datasource jta="true" jndi-name="java:/DB" pool-name="DB" enabled="true" use-ccm="true">
                    <connection-url>jdbc:mysql://IP:3306/DB_NAME?zeroDateTimeBehavior=convertToNullamp;amp;autoReconnect=true</connection-url>
                    <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
                    <driver>mysql</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>root</password>
                    </security>
                </datasource>
 

У меня есть один рабочий узел, и в нем запущены 2 копии одного и того же модуля. Но в настоящее время я заметил, что Интернет не может добраться до моих модулей. Я пытаюсь с

пинг google.com

Он не дает ожидаемого ответа. Я уже использую службы балансировки нагрузки для предоставления портов.

 apiVersion: v1
kind: Service
metadata:
  name: re-demo
  namespace: default
spec:
  type: LoadBalancer 
  selector: 
    app: re-demo
  ports:
  - port: 9575 
    targetPort: 9575
    nodePort: 32756
  externalTrafficPolicy: Cluster 
 

Как я могу это решить??

Комментарии:

1. как вы настроили кластер k8s? происходит ли это со всеми капсулами (как я предполагаю)? используете ли вы EKS / AKS / GKE или что-то в этом роде? в основном требуется дополнительная информация о том, как вы это настроили.

2. Для создания кластера я использовал Google cloud. Я создал экземпляры виртуальной машины для главного узла и рабочего узла. Я не использую GKE. Я запустил команды kubeadm с главного узла и настроил кластер

3. docs.google.com/document/d /… это команды, которые я использовал для настройки кластера

4. Попробуйте отредактировать эту строку в flannel для вашей подсети, которая есть 172.16.0.0/16 . Дайте мне знать, помогло ли это.

5. Просто сохраните kube-flannel. yaml на диске, отредактируйте и сделайте kubectl apply -f kube-flannel.yaml . Нет необходимости что-либо удалять. Вы можете попробовать удалить flannel, если после применения он все еще не работает, и применить его еще раз.

Ответ №1:

При настройке кластера произошла ошибка.

 kubeadm init --apiserver-advertise-address 10.128.0.12 --pod-network-cidr=10.244.0.0/16
 

адрес cidr, который мы должны указать, такой же, как у нас в нашем файле kube_flannel.yaml. Если вы хотите изменить IP-адрес в cidr, сначала внесите изменения в kube_flannel.yaml файл.

В противном случае это приведет к тому, что модули не будут доступны в Интернете. И нам нужно использовать hostNetwork =true свойство для подключения к Интернету, но это, в свою очередь, мешает нам запускать более одной реплики одного и того же модуля в одном и том же узле.