使用metallb工具,目的是爲私有環境下,不借助GRE或Azure等雲商的LB,nginx
經過metallb-system工具IP池給k8s service提供external-ip。可是,因爲設置metallb網段和k8s物理網段相同,git
致使物理網絡中已經使用的ip(好比192.168.3.1)被重複分配給k8s service。github
這樣,就致使了k8s 物理網絡沒法訪問外網internet。網絡
如下是具體的檢查步驟和處理辦法:工具
step 1:spa
首先刪除metal-system命令空間下的全部資源(service/deployment/configmap/ns等)blog
root >> kubectl delete namespace metallb-systemip
step 2:資源
查詢可能已經分配錯誤external-ip的服務service,而後先刪除這些服務get
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