【K8s開啓防火牆】Failed to list *v1.Endpoints: Get https://10.96.0.1:443/api/v1/endpoints?

今日,在Kubernetes集羣開啓防火牆firewalld出現問題記錄一下

本章內容:
1: 問題&解決
2: K8s部署方案
3: 防火牆firewalld設計

1.問題&解決:
1 reflector.go:134] github.com/coredns/coredns/plugin/kubernetes/controller.go:317: Failed to list *v1.Endpoints: Get https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: connect: no route to host 在這裏插入圖片描述
在這裏插入圖片描述
容器連接10.96.0.1失敗,所有要允許容器IP段通過防火牆,那麼容器IP段如何查詢:接下來會說。
k8s集羣有兩個段,一個k8s-service服務IP段,容器IP段,這兩個的地址段均可在文件中查詢得到:分別對應爲:{"k8s-service IP段":"net-conf.json","容器IP段":"kube-apiserver.yaml"}
如何放行就看各人的習慣了,以下列舉筆者的防火牆策略
2: K8s部署方案:
https://blog.csdn.net/weixin_41806245/article/details/89381752
3.筆者防火牆策略:

區域 ip列表 端口
trusted 集羣IP、service-cluster-ip網絡段、pod-network-cidr網絡段 NULL
public 默認 提供外網服務的端口,比如k8s-dashboard、prometheus
block NULL NULL
drop NULL NULL
特別注意,若通過在kubernetes發佈的服務使用nodeport、hostport、hostIP等(其他沒測)將無視防火牆直接暴露端口給公網(anyone),
若此時在防火牆禁止相應端口將對路由重置,即使再次關閉防火牆也無法訪問到相應端口的服務。若想恢復需重啓容器。(kubectl delete)

看了其他博主是通過public放行k8s端口(比如放行6443、10250端口),而不是信任整個集羣,這樣的壞處就容易被公網掃端口

以下文章將有助於您:
【K8s開啓防火牆需要放行的端口】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章