《王炳燊--阿里云使用 eBPF深度监控k8s网络实践 -- KubeSkoop.pdf》由会员分享,可在线阅读,更多相关《王炳燊--阿里云使用 eBPF深度监控k8s网络实践 -- KubeSkoop.pdf(26页珍藏版)》请在三个皮匠报告上搜索。
1、阿里云使用eBPF深度监控k8s网络实践第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安-KubeSkoop王炳燊(溪恒)第 二 届 e B P F 开 发 者 大 会目录K8S网络问题复杂性KubeSkoop项目介绍KubeSkoop基于eBPF的k8s网络监控K8S网络问题复杂性第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安第 二 届 e B P F 开 发 者 大 会K8S网络问题复杂性网络逻辑概念复杂链路实现层次复杂第 二 届 e B P F 开 发 者 大 会K8S网络逻辑概
2、念Kubernetes服务发现-ServicePodSVCPodPodPodspec:clusterIP:192.168.14.75ports:-port:80protocol:TCPtargetPort:80selector:app:nginxmetadata:labels:app:nginxKubernetes网络策略-NetworkPolicyPod数据库Pod前端Pod后端spec:podSelector:matchLabels:tier:backendingress:-from:-podSelector:matchLabels:tier:frontendspec:podSelecto
3、r:matchLabels:tier:dbingress:-from:-podSelector:matchLabels:tier:backendK8S服务发现-ServiceK8S网络策略-NetworkPolicyKubernetes中包含很多网络逻辑概念导致配置复杂:Ingress/Service/NetworkPolicy 配置LabelSelector选择到不预期的Pod多个NetworkPolicy规则重叠Service NAT的端口和实际端口不符合ServiceMesh 更复杂的7层网络策略第三方网络/Ingress插件自定义的网络扩展第 二 届 e B P F 开 发 者 大 会
4、容器网络的链路实现数据平面复杂:数据面多层处理,ServiceMesh/KubeProxy/CNI多种CNI网络实现(Overlay/Underlay)协议栈链路复杂:链路长,涉及网卡驱动/netfilter/route/bridge等配置繁琐难懂底层网络配置:每个云厂商配置不同安全组、路由表等配置复杂节点KubeletCNIPodPodCNI网络链路IaaS网络节点KubeletCNIPodPodCNI网络链路第 二 届 e B P F 开 发 者 大 会传统定位网络问题手段定位流程长在Pod、Node等多处同时抓包定位丢包点分析丢包点配置(iptables/内核参数/云厂商网络等)大量定位
5、时间开销压测等手段复现问题需要了解网络插件原理大量的抓包和信息采集人员经验要求高熟练的运维能力精通Linux协议栈精通对应云厂商的网络配置KubeSkoop项目介绍第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安K8S网络问题诊断工具集第 二 届 e B P F 开 发 者 大 会KubeSkoop项目介绍连通性诊断延迟探测分布式抓包异常回溯访问流记录项目地址:https:/ 二 届 e B P F 开 发 者 大 会连通性诊断 用户指定不通的来源目的,等待输出诊断的结果 自动构建网络访问链路,分析链路问题 包含Kubernetes Ser
6、vice、NetworkPolicy等概念分析 全面覆盖协议栈、底层IaaS的连通性相关检查 无需了解网络插件实现和复杂的网络问题排查经验第 二 届 e B P F 开 发 者 大 会监控和异常回溯集群节点PodPodPodkernelkuberneteseBPF/procCRIKubeSkoop exporterMetricsEvent Log深度监控异常记录基于eBPF的容器网络异常监控:云原生部署,与Prometheus等可观测体系对接Pod级别的网络监控能力精简、低开销的内核异常监控覆盖多种问题场景诊断:网络偶发丢包重传诊断Flow级别异常识别网络全链路延迟分析多种类型异常透出:反映访