您好,我已經安裝並配置了 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 指令並在設定檔中相應地設定範圍。