Kubernetes hostNetwork¶
在 在Kubernetes集群(z-k8s)部署集成GPU监控的Prometheus和Grafana 排查 Calico网络 网络异常的 DaemonSet 无法访问的问题,最终采用 kube-prometheus-stack 改为hostNetwork 来规避。这种 hostNetwork
虽然不是 Kubernetes网络 CNI解决方案,但是对于 Nodes
运维会有很大帮助,因为pod完全是类似物理主机上的 Systemd进程管理器 服务来工作,所以只要物理主机工作正常, daemonset
就能够正常工作。
当服务器上的 Kubernetes网络 无法正常工作时,使用 spec.hostNetwork: true
的pods依然可以和外部通讯( 需要配置 node.kubernetes.io/network-unavailable
容忍度 ),这对系统进行异常处理故障恢复会有很大帮助,也是基础系统运维的利器。
参考¶
Kubenet network performance degraded, solved using hostNetwork: true, with unicorn app 通过
hostnetwork
解决网络性能降级问题DNS intermittent delays of 5s #56903 案例,weave CNI网络有一个DNS查询策略在不同的内核和glibc下可能有不同表现,使用
dnsPolicy: Default
可能会缓解 。详细分析见 Racy conntrack and DNS lookup timeouts (weaveworks官方博客) : DNS查询是通过DNAT(Destination Network Address Translation)在内核实现 ; 5 – 15s DNS lookups on Kubernetes?