【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开启防火墙需要放行的端口】

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