kubernates on prem 502 錯誤網關

kubernates on prem 502 錯誤網關

您好,我已經安裝並配置了 kubernates 我已經嘗試使用 minikube 和 kubeadm 我安裝了什麼:flannel、nginx-ingress-controller、metalLB 然後將 ngix-ingress-controller 服務設置為 loadBalancer

當嘗試公開一個簡單的 WordPress 應用程式時(使用 clusterIp 甚至使用 nodePort),我總是得到 502 bad gateway

作業系統: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 在配置之前保持空閒。這是透過建立配置映射並將其部署到與部署相同的命名空間(metalb-​​system)中來完成的。

有一個例子二層配置

第 2 層模式配置最簡單:在許多情況下,您不需要任何特定於協定的配置,只需要 IP 位址。

第 2 層模式不需要將 IP 綁定到工作節點的網路介面。它的工作原理是直接回應本地網路上的 ARP 請求,將電腦的 MAC 位址提供給客戶端。

例如,以下配置使 MetalLB 能夠控制從 192.168.1.240 到 192.168.1.250 的 IP,並配置第 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 的預先定義範圍。在我們的例子中,為了取得 minikube 的 IP,我們使用 minikube ip 指令並在設定檔中相應地設定範圍。

在此輸入影像描述 在此輸入影像描述

相關內容