Ubuntu

kubernates on prem 502 bad gateway

  • December 14, 2020

嗨,我已經安裝並配置了 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 和 kubet(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

感謝@Jakub,我錯過了配置metalLB(創建配置映射)然後我將ingress-nginx-controller設置為loadBalancer完美執行

只是為了澄清這裡出了什麼問題。

如 MetalLB文件中所述:

MetalLB 在配置之前保持空閒。這是通過創建配置映射並將其部署到與部署相同的命名空間(metallb-system)來實現的。

有一個範例第 2 層配置

第 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

此外,在 media 上還有一個很棒的教程,它解釋瞭如何在minikube上從頭開始設置它。

MetalLB 包含兩條資訊,一個協議和一個 IP 地址範圍。在這個配置中,MetalLB 被指示從 192.168.99.95/105 中分發地址,這是我們關於節點 IP 的預定義範圍。在我們的例子中,為了獲取我們的 minikube 的 IP,我們使用 minikube ip 命令並在配置文件中相應地設置範圍。

在此處輸入圖像描述 在此處輸入圖像描述

引用自:https://serverfault.com/questions/1045312