kubernates on prem 502 bad gateway
嗨,我已經安裝並配置了 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 命令並在配置文件中相應地設置範圍。