使用metallb工具,目的是為私有環境下,不借助GRE或Azure等云商的LB,
通過metallb-system工具IP池給k8s service提供external-ip,但是,由于設定metallb網段和k8s物理網段相同,
導致物理網路中已經使用的ip(比如192.168.3.1)被重復分配給k8s service,
這樣,就導致了k8s 物理網路無法訪問外網internet,
以下是具體的檢查步驟和處理辦法:
step 1:
首先洗掉metal-system命令空間下的所有資源(service/deployment/configmap/ns等)
root >> kubectl delete namespace metallb-system
step 2:
查詢可能已經分配錯誤external-ip的服務service,然后先洗掉這些服務
root >> kubectl get service --all-namespaces
root >> kubectl delete service {svc_name} -n {ns_name}

step 3:
重啟舊的ingress-nginx-controller的pod,可以用delete pod方式實作,
root >> kubectl delete pod {ingress-nginx-controller_podname} -n ingress-nginx

step 4:
重新檢查k8s機器和外網的互通,檢查OK如下:

附錄:
我記錄在github的issue和自己處理的方法:
https://github.com/danderson/metallb/issues/512
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/47605.html
標籤:其他
