記錄:一次使用私有LoadBalance provider,工具metallb的故障排除


     使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM