kubernates на prem 502 плохой шлюз

kubernates на prem 502 плохой шлюз

Привет, я установил и настроил Kubernates. Я пробовал использовать как minikube, так и kubeadm. Я установил: flannel, nginx-ingress-controller, metalLB, а затем настроил службу ngix-ingress-controller на loadBalancer.

Я всегда получаю ошибку 502 bad gateway при попытке открыть простое приложение WordPress (используя clusterIp или даже nodePort)

ОС: Ubuntu 20.04 LTS с установленными docker-ce, kubeadm и kubelt (официальный сайт Kubernates)

Процесс установкиЯ следовал: Kube init:

kubeadm init --pod-network-cidr=10.244.0.0/16

kubectl taint nodes --all node-role.kubernetes.io/master-

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

фланель:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

nginx

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/deploy.yaml

metallb: следовал инструкциям на месте

Я попытался изменить службу ingress-nginx-controller на LoadBalancer и добавить externalIP, но ничего не изменилось.

вот мои yaml-файлы: услуга

apiVersion: v1
kind: Service
metadata:
  labels:
    appcluster: kubernetes
    app: wordpress
  name: wordpress-service
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http-port
  selector:
    app: wordpress
  type: ClusterIP

вхождение

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: wordpress-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: ethernial.com
      http:
        paths:
          - path: /?(.*)
            backend:
              serviceName: wordpress-service
              servicePort: 80

решение1

Спасибо @Jakub, я забыл настроить metalLB (создать карту конфигурации), затем я установил ingress-nginx-controller в положение loadBalancer, и он работает отлично.

решение2

Просто чтобы прояснить, что здесь не так.

Как упоминалось в MetalLBдокументация:

MetalLB остается бездействующим до тех пор, пока не будет настроен. Это достигается путем создания и развертывания configmap в том же пространстве имен (metallb-system), что и развертывание.

Есть примерКонфигурация уровня 2.

Режим уровня 2 является самым простым в настройке: во многих случаях вам не нужна какая-либо специфическая для протокола конфигурация, только IP-адреса.

Режим уровня 2 не требует привязки IP-адресов к сетевым интерфейсам ваших рабочих узлов. Он работает, отвечая на запросы ARP в вашей локальной сети напрямую, чтобы предоставить MAC-адрес машины клиентам.

Например, следующая конфигурация дает MetalLB контроль над IP-адресами от 192.168.1.240 до 192.168.1.250 и настраивает режим уровня 2:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250

Кроме того, есть отличный учебник посерединагде объясняется, как настроить его с нуля на minikube.

MetalLB содержит два фрагмента информации: протокол и диапазон IP-адресов. В этой конфигурации MetalLB предписано выдавать адреса из 192.168.99.95/105, это наш предопределенный диапазон относительно IP-адреса узла. В нашем случае для получения IP нашего minikube мы используем команду minikube ip и устанавливаем соответствующий диапазон в файле конфигурации.

введите описание изображения здесь введите описание изображения здесь

Связанный контент