kubernetes-networkpolicies网络策略问题
问题描述
重点重点重点,查看我的博客CKA考题,里面能找到解决方法
1.部署prometheus监控的时候,都部署成功,但是web访问503-504超时
2.添加ingress的时候也是访问不到,其他命名空间pod是可以通信
3.拉取的prometheus.yaml里面有networkpolicies.yaml是管理集群通信的
总结
我切换成nodeport暴漏方式,想去访问grafana页面,但是没有在宿主机上面发现暴漏端口,这里上网查看相关文档,k8s创建nodeport会在所有node节点暴漏端口,有一种网络策略他是不显示出来,你去ping 或者tlenet 端口 都是通的,当有服务去访问的时候,他会通过iptables规则去转发到对应的端口。
解决方法
1.首先查看pod通信问题,其他节点访问这个pod网络
ping 10.244.201.239
#测试其他节点pod能不能通信
2.查看部署yaml是不是有networkpolicies网络策略yaml文件
root@k8s-master01:~/test/prometheus/kube-prometheus-0.13.0/manifests# find . -name "*networkPolicy.yaml"
./prometheusOperator-networkPolicy.yaml
./blackboxExporter-networkPolicy.yaml
./prometheusAdapter-networkPolicy.yaml
./kubeStateMetrics-networkPolicy.yaml
./grafana-networkPolicy.yaml
./prometheus-networkPolicy.yaml
./alertmanager-networkPolicy.yaml
./nodeExporter-networkPolicy.yaml
#上面这些都是有网络策略的文件
3.查看networkpolicies
root@k8s-master01:~/test/prometheus/kube-prometheus-0.13.0/manifests# kubectl get networkpolicies -A
NAMESPACE NAME POD-SELECTOR AGE
monitoring blackbox-exporter app.kubernetes.io/component=exporter,app.kubernetes.io/name=blackbox-exporter,app.kubernetes.io/part-of=kube-prometheus 6h13m
monitoring kube-state-metrics app.kubernetes.io/component=exporter,app.kubernetes.io/name=kube-state- 6h13m
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5C%E8%89%BE%E5%85%8B%5CAp
4.确认问题点,首先设置节点不可调度,在相同命名空间下创建pod,看看能不能访问
kubectl cordon master #设置节点不可调度
kubectl create deployment nginx --image=nginx -n monitoring #测试成功就是网络策略问题
5.解决问题
通过yaml删除networkpolicies也可以
直接删除networkpolicy也可以
# kubectl delete networkpolicy blackbox-exporter -n monitoring
networkpolicy.networking.k8s.io "blackbox-exporter" deleted
配置ingress-grafana,添加注解
详解,grafana本身自己302又跳了一下
nginx.ingress.kubernetes.io/auth-always-set-cookie:设置身份验证请求返回的 cookie。默认情况下,仅当上游报告代码为 200、201、204、206、301、302、303、304、307 或 308 时,才会设置 cookie。<Boolean_Flag>
此注释允许您返回时间重定向(返回代码 302),而不是向上游发送数据。例如,将所有内容重定向到 Google,返回代码为 302(暂时移动)nginx.ingress.kubernetes.io/temporal-redirect:
ACK配置
新方法:
修改grafana.ini文件的yaml文件
grafana.ini: |
[server]
domain: daxinxindahaohao.cn
root_url: http://daxinxindahaohao.cn/grafana
serve_from_sub_path: true
[auth.anonymous]
enabled: true
org_role: Viewer
重启pod,记得重启pod
阿里云ingress配置
参考文档
[https://www.cnblogs.com/daniel-hutao/p/18041793/k8s_ingress_debug#%E7%AC%AC-2-%E5%85%B3%E5%BA%94%E7%94%A8%E8%BF%94%E5%9B%9E-302%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0-%E5%BC%95%E5%85%A5-503-%E9%94%99%E8%AF%AF]:
官网
[https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#temporal-redirect]:
//kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#temporal-redirect]: