深入解析:K8S RD: Kubernetes运维核心指南:污点调度、网络架构与全链路故障排查实战

news/2025/12/7 9:34:32/文章来源:https://www.cnblogs.com/gccbuaa/p/19317527

污点(Taint)与容忍度(Toleration)


污点(Taint) 用于在 Node 节点 上标记排斥策略,阻止不符合条件的 Pod 调度到该节点,核心作用是实现节点分组管理。例如:若需禁止某类 Pod 部署到特定节点,可在目标 Node 上添加污点标签。

污点容忍度(Toleration) 允许 Pod 被调度到含污点的 Node 节点,需与污点配合使用。典型场景:当特定 Pod(如专用硬件依赖型应用)必须部署到含污点的节点时,需为 Pod 配置容忍度声明。

作用与协同机制

  • 污点:标记节点以阻止非常定Pod调度,实现节点分组管理(如专用硬件节点)。
    # 语法
    kubectl taint nodes <node-name> key=value:effect# 示例kubectl taint nodes node1 key=value:NoSchedule  # 添加污点 
  • 容忍度:允许特定Pod调度到含污点的节点(如日志采集服务)。
  • 容忍度需在 Pod 的 YAML 中定义 tolerations 字段,匹配污点的键值对。
    tolerations:
    - key: "key"
    operator: "Equal"
    value: "value"
    effect: "NoSchedule"
  • 容忍度需在 Pod 的 YAML 中定义 tolerations 字段,匹配污点的键值对。

技术逻辑:节点打污点 → Pod配置匹配容忍度 → Pod可调度至目标节点。

Service的四种类型


类型作用适用场景
ClusterIP分配虚拟IP供集群内部访问,提供负载均衡(默认类型)集群内服务通信
NodePort通过节点IP+端口(30000-32767)暴露服务外部访问集群应用
LoadBalancer由云厂商创建外部负载均衡器转发请求(NodePort升级版)公有云环境
ExternalName将Service映射到外部域名(如www.baidu.com集群内访问外部服务
  • ClusterIP(默认类型)

    • 分配虚拟 IP 作为集群内部统一入口,提供负载均衡能力。
    • 仅限集群内部访问,不暴露到外部网络。
  • NodePort

    • 通过 Node 节点的 IP + 端口 暴露服务,支持外部客户端访问。
    • 流量路径:外部请求 → NodeIP:Port → Service → 后端 Pod。
  • LoadBalancer

    • NodePort 的扩展,依赖云厂商创建外部负载均衡器,将流量转发至 NodePort。
    • 仅适用于公有云环境(如 AWS ALB、GCP Load Balancer)。
  • ExternalName

    • 将 Service 名称映射到集群外部域名,实现集群内服务访问外部资源。
    • 例:集群内访问 k8s-svc 自动解析为 www.external.com

ExternalName配置示例:

apiVersion: v1
kind: Service
metadata:
name: k8s-external-svc
spec:
type: ExternalName
externalName: www.kubernetes.io
  • 集群内访问 k8s-external-svc 将解析到 www.kubernetes.io
  • 支持场景:绑定外部域名或跨命名空间的内部域名。

Service代理模式


模式技术原理特点
iptables基于Linux内核防火墙规则默认模式,适合中小规模集群
IPVS基于LVS负载均衡技术,支持轮询算法高性能,适合大规模集群

Kubernetes服务暴露方式


  1. NodePort
    • 直接通过节点IP和端口暴露服务。
  2. LoadBalancer
    • 依赖云厂商创建外部负载均衡器(如AWS ELB),云厂商提供负载均衡器(需公有云支持)
  3. Ingress
  • 基于域名和路径的七层代理,分流到不同 Service(如 example.com/app1app1-svc
  • 基于域名/路径的七层代理(需Ingress Controller如Nginx)

Prometheus监控组件


组件功能
Alertmanager接收告警并推送至邮件/钉钉/微信,需配置Webhook地址
Exporters采集资源数据(NodeExporter采集节点指标,MySQLExporter采集数据库指标)
Prometheus Server核心组件,集成cAdvisor采集容器指标,关联Exporter和Alertmanager
kube-state-metrics监控Kubernetes资源对象状态(如Pod/Deployment)
Grafana可视化监控数据,数据源指向Prometheus

工作流:
Exporters 采集数据 → Prometheus 聚合 → Alertmanager 触发告警 → Grafana 展示

Prometheus 关联 Alertmanager 配置片段
alerting:
alertmanagers:
- static_configs:
- targets: ['alertmanager:9093']  # Alertmanager 服务地址 

钉钉告警配置流程:

  1. 创建钉钉机器人获取Webhook地址。
  2. 部署prometheus-webhook-dingtalk服务并配置Webhook。
  3. Alertmanager配置指向该服务地址:
    alerting:
    alertmanagers:
    - static_configs:
    - targets: ['webhook-dingtalk:8060']  # 钉钉服务地址 

Pod常见状态及排查


状态原因排查措施
Pending资源不足、污点未容忍、亲和性冲突检查节点资源/污点/标签匹配
ContainerCreating节点故障、网络异常、存储卷挂载失败验证节点状态/网络连通性/PVC配置
ImagePullBackOff镜像名错误、仓库认证失败、网络超时检查镜像名/Secret配置/网络连通性
CrashLoopBackOff容器进程崩溃、配置错误查看容器日志/资源限制/启动命令
Error依赖资源缺失(ConfigMap/Secret未创建)校验关联资源是否存在
Terminating容器异常退出或手动删除中检查应用日志或kubectl describe pod
Unknown节点失联修复节点网络或kubelet服务

故障节点处理流程


1 ) 驱逐Pod:

kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
  • 将节点上的 Pod 迁移至其他节点,确保服务不中断。

2 ) 重置节点:

kubeadm reset
systemctl stop kubelet docker
rm -rf /etc/cni/net.d /var/lib/kubelet/* /var/lib/etcd
ip link delete cni0  # 清理网络接口 

节点维护:

  • 停止服务:systemctl stop kubelet docker
  • 清理文件:删除 /var/lib/kubelet、CNI 配置及旧网络接口。

3 )重新加入集群:

kubeadm reset
systemctl start docker
kubeadm join <master-ip>:<port> --token <token># 或kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash>

健康检查探针类型


探针类型检测方式成功条件
HTTP GET发送HTTP请求到容器端口返回2xx/3xx状态码
TCP Socket尝试建立TCP连接端口可连通
Exec在容器内执行命令命令退出码为0

HTTP GET探针示例:

livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15  # 容器启动后等待时间 
periodSeconds: 5         # 检查频率 

Kubernetes网络通信模型


  1. 同一Pod内容器通信
    • 通过localhost和共享网络命名空间直接通信。
  2. Pod间通信
    • 跨节点依赖CNI插件(如Flannel/Calico)提供 overlay 网络,分配IP并路由。
    • 同节点:通过 CNI 网桥(如 docker0)。
    • 跨节点:通过 Overlay 网络(如 Flannel VXLAN)。
  3. Pod与Service通信
    • 通过ClusterIP负载均衡到后端Pod
    • 通过 ClusterIP 经 iptables/IPVS 转发
  4. 外部访问通信
    • 使用NodePort/LoadBalancer/Ingress暴露服务。

网络插件对比


插件特点适用场景
Flannel提供Overlay网络(VXLAN/Host-GW模式)简单网络环境
Calico支持网络策略(NetworkPolicy)、BGP路由需安全隔离的场景
CanalFlannel+Calico组合平衡性能与安全性

Flannel模式差异:

  • VXLAN:
    • 叠加网络,通过 flannel.1 虚拟网卡跨节点通信。
    • 通用性强,通过叠加网络封装跨节点流量。
  • Host-GW:
    • 宿主机作网关,性能更高(需节点间二层互通)。

网络超时排查步骤:

  1. 检查 CNI 插件状态:kubectl get pods -n kube-system
  2. 验证 Pod 网段与宿主机网段是否重叠(需隔离)。
  3. 跨节点通信测试:kubectl exec <pod> ping <目标 Pod IP>
  4. 抓包分析:tcpdump -i eth0 port 80

Pod网络故障排查


故障类型排查方法
Pod间通信超时检查CNI插件状态/节点路由表/网段冲突(ip route show
Pod与宿主机通信失败验证宿主机防火墙/网桥配置(brctl show
Pod无法访问外网检测NAT配置/DNS解析(nslookup)/抓包分析(tcpdump -i eth0 port 53
Service访问超时确认宿主机开启IP转发(sysctl net.ipv4.ip_forward=1

Pod间通信超时

  • 检查CNI插件状态(kubectl get pods -n kube-system)。
  • 确认Pod网段与宿主机网段无重叠。

Pod 访问外网超时:

  • 排查宿主机网络和 DNS:
    bash kubectl exec <pod-name> -- ping 8.8.8.8 # 测试外网连通性 kubectl exec <pod-name> -- nslookup baidu.com # 检查 DNS 解析 kubectl exec <pod> -- tcpdump -i eth0 host www.baidu.com #抓包分析
    * 宿主机网络测试:ping 8.8.8.8
    * Pod内DNS测试:nslookup www.baidu.com
  • 抓包分析:tcpdump -i eth0 -n host <目标IP>

访问 Pod/Service IP 超时处理

Pod 生命周期核心阶段


Pending → ContainerCreating → Running → Terminating

  1. Pending:调度中(等待资源分配)。
  2. Running:容器正常运行。
  3. Terminating:删除中(执行preStop钩子)。

Pod状态正常但应用异常的原因


  1. 端口映射错误:Service的targetPort与容器监听端口不匹配
  2. 应用逻辑缺陷:代码异常或未处理依赖(需结合日志排查)
  3. 依赖服务故障:数据库/配置中心不可用(验证Endpoint连通性)
  4. 内存泄漏/OOM:
    • 监控容器内存使用(kubectl top pod),策略阻止通信或 DNS 解析失败,进程僵死但容器状态未更新
    • OOM 导致进程僵死(检查 kubectl describe pod 的 OOMKilled 事件)
  5. 网络策略限制:NetworkPolicy阻断流量
  6. 环境变量错误:配置值不合法

CoreDNS故障排查


1 ) 资源检查:

CPU/内存是否耗尽:topkubectl top pods

kubectl top pods -n kube-system  # 确认CPU/内存是否耗尽 

2 ) 日志分析:

kubectl logs -n kube-system <coredns-pod># 或kubectl logs -f <coredns-pod> -n kube-system

3 ) 网络验证:

  • 测试节点间互通:ping <目标节点IP>traceroute
  • DNS解析测试:
    kubectl exec <test-pod> -- nslookup kubernetes.default.svc.cluster.local
  • DNS 流量分析:tcpdump -i eth0 port 53

4 )依赖项检查:

  • 确认 etcd/Kubernetes API 服务正常

5 ) 配置校验:

kubectl get configmap/coredns -n kube-system -o yaml  # 检查Corefile 

6 )安全策略:

  • 检查 NetworkPolicy 或防火墙是否拦截 DNS 流量(默认 UDP 53)

节点NotReady状态处理


场景原因解决方案
新集群节点NotReadyCNI网络插件未安装部署Flannel/Calico
运行中节点异常资源耗尽(CPU/内存/磁盘)清理资源或扩容节点
kubelet故障systemctl restart kubelet
通用检查查看详细事件kubectl describe node <node-name>
  1. 初始部署问题:
    • 网络插件未安装(如 Flannel/Calico)。
  2. 运行中故障:
    • 宿主机资源耗尽(CPU/内存/磁盘)。
    • kubelet 服务异常:重启 systemctl restart kubelet
  3. 深度排查:
    • 查看节点详情:kubectl describe node <node-name>
    • 检查系统日志:journalctl -u kubelet

关键总结

  • 调度控制:污点与容忍度实现节点精细调度。
  • 服务暴露:
    • 内部访问:ClusterIP
    • 外部访问:NodePort/LoadBalancer/Ingress
    • 外部服务映射:ExternalName
  • 网络设计:
    • 性能优先:Calico BGP模式或Flannel Host-GW
    • 策略需求:Calico NetworkPolicy
  • 故障排查核心:
    • Pod状态异常 → 分析日志+资源监控
    • 网络故障 → 验证CNI插件+宿主机配置(IP转发/网段隔离

关键总结

  • 污点与容忍度:通过节点标记和 Pod 豁免实现精细调度控制。
  • Service 类型:根据访问需求选择 ClusterIP(内部)、NodePort/LoadBalancer(外部)或 ExternalName(外部服务映射)。
  • 网络设计:CNI 插件选型需平衡功能(如 Flannel 简单 vs Calico 策略支持)和性能(host-gw > VXLAN)。
  • 故障排查:
    • Pod 状态异常需结合日志和资源监控定位。
    • 网络问题优先验证 CNI 插件和宿主机配置(IP 转发、网段冲突)。
  • 监控体系:Prometheus 组件分工明确,Exporter 数据采集 → Server 聚合 → Alertmanager 告警 → Grafana 可视化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年口碑好的西安低温电池最新TOP厂家排名

2025年口碑好的西安低温电池TOP厂家排名行业背景与市场趋势随着新能源产业的快速发展,低温电池作为特种电池的重要分支,在军工、航空航天、极地科考、电力应急等领域的需求持续增长。西安作为我国西北地区重要的科研…

2025年质量好的免冲水小便器/小便器无水技术厂家推荐及选购指南

2025年质量好的免冲水小便器/小便器无水技术厂家推荐及选购指南行业背景与市场趋势随着全球水资源日益紧张和环保意识不断提升,节水型卫浴设备已成为公共卫生领域的重要发展方向。据市场调研数据显示,2024年全球免冲…

2025年重庆板栗鸡外卖五大排行榜,板栗鸡外卖哪家便宜、推荐

为帮重庆食客高效锁定实惠又美味的板栗鸡外卖选择,避免踩价高味差食材敷衍的坑,我们从性价比(人均消费、分量匹配度)、口味还原度(现制工艺、汤汁锁鲜)、食材品质(鸡肉来源、板栗软糯度)、配送体验(超时赔付、…

Cloudflare安全验证背后的连接安全与JavaScript检测机制

本文描述了访问网站时遇到Cloudflare安全验证的过程,涉及连接安全审查、机器人验证机制以及启用JavaScript和Cookie的技术要求,揭示了现代Web应用在网络安全和访问控制方面的常见技术环节。文章正文markdown格式数据…

2025年知名的实验用平板硫化机厂家实力及用户口碑排行榜

2025年知名的实验用平板硫化机厂家实力及用户口碑排行榜行业背景与市场趋势实验用平板硫化机作为高分子材料、橡胶制品研发及质量控制的核心设备,近年来随着新材料产业的蓬勃发展,市场需求持续增长。2024年全球实验用…

2025年质量好的景区冰雕行业内知名厂家排行榜

2025年质量好的景区冰雕行业内知名厂家排行榜行业背景与市场趋势随着冬季旅游经济的持续升温,景区冰雕行业迎来了前所未有的发展机遇。据中国旅游研究院数据显示,2024年冬季冰雪旅游人次突破3.5亿,市场规模达到6800…

MarkDown

MarkDown 标题 三级标题 字体 引用 分割线

2025年质量好的高性价比全品类五金厂家最新权威实力榜

2025年质量好的高性价比全品类五金厂家权威实力榜行业背景与市场趋势随着全球建筑装饰行业的持续发展和家居消费升级,五金配件作为产业链中不可或缺的一环,正迎来前所未有的发展机遇。2024-2025年,五金行业呈现出智…

从人脑神经元到PyTorch深度神经网络:感知机、多层感知器与卷积神经网络的通俗解读

从人脑神经元到PyTorch深度神经网络:感知机、多层感知器与卷积神经网络的通俗解读 我们的大脑之所以能完成思考、判断、感知等复杂任务,核心在于其内部千亿级神经元组成的精密网络。当科学家试图用机器复刻这种智能时…

2025年质量好的大型空压机厂家最新权威推荐排行榜

2025年质量好的大型空压机厂家权威推荐排行榜行业背景与市场趋势随着工业4.0时代的深入发展,大型空压机作为工业生产中不可或缺的动力设备,其市场需求持续增长。2025年全球空压机市场规模预计将达到450亿美元,年复合…

学烹饪哪学校好?重庆新东方烹饪职业学校教学模式先进

餐饮行业蓬勃发展,专业烹饪人才缺口持续扩大。2024年数据显示,重庆餐饮市场规模突破1200亿元,年增速15%,但超60%的餐饮企业面临技能型厨师短缺问题,尤其缺乏懂技术、会管理、能创新的复合型人才。想入行的零基础学…

2025年重庆梁山鸡品牌TOP5推荐:观音桥步行街好吃的美食

本榜单依托重庆本地美食测评数据、大众点评必吃榜历史记录及真实食客口碑,筛选出五家标杆梁山鸡品牌,为食客提供客观参考,助力精准找到适配的山城风味体验。 TOP1 推荐:重庆李子坝餐饮文化有限公司 推荐指数:★★…

2025年比较好的双玻百叶玻璃隔断厂家推荐及选购指南

2025年比较好的双玻百叶玻璃隔断厂家推荐及选购指南行业背景与市场趋势随着现代办公空间设计理念的不断升级,双玻百叶玻璃隔断凭借其通透性、灵活性及环保特性,正成为2025年办公空间隔断的主流选择。据市场调研数据显…

2025年热门的温镦钨钢模具材料厂家推荐及选购指南

2025年热门的温镦钨钢模具材料厂家推荐及选购指南 行业背景与市场趋势 随着制造业向高精度、高效率方向发展,温镦钨钢模具材料的需求持续增长。钨钢(硬质合金)凭借其高硬度、耐磨性和耐高温特性,成为温镦模具的材…

2025年知名的物业职业装定制/广州职业装定制厂家最新权威实力榜

2025年知名的物业职业装定制/广州职业装定制厂家权威实力榜职业装定制行业背景与市场趋势随着企业形象意识的不断提升和职场文化的日益规范化,职业装定制行业正迎来新一轮发展机遇。2024-2025年,中国职业装市场规模预…

2025年热门的耐乙醇涂料/耐溶剂涂料厂家推荐及选择指南

2025年热门的耐乙醇涂料/耐溶剂涂料厂家推荐及选择指南行业背景与市场趋势随着化工、制药、食品加工等行业的快速发展,对耐乙醇涂料和耐溶剂涂料的需求呈现持续增长态势。这类特种涂料能够有效保护设备表面免受乙醇、…

从人脑神经元到MindSpore深度神经网络:感知机、多层感知器与卷积神经网络的通俗解读

从人脑神经元到MindSpore深度神经网络:感知机、多层感知器与卷积神经网络的通俗解读 我们的大脑之所以能完成思考、判断、感知等复杂任务,核心在于其内部千亿级神经元组成的精密网络。当科学家试图用机器复刻这种智能…

2025年五大知名直流电源品牌企业推荐,直流电源资深厂商排行

在新能源、半导体、汽车电子等领域的技术迭代中,直流电源作为核心测试设备,是保障研发精度与生产效率的隐形基石。面对市场上良莠不齐的供应商,如何选择专业可靠的直流电源厂商?以下结合技术实力、行业口碑与服务能…

2025年口碑好的LSY-10型电流互感器/西安JSZV16-10R型电压互感器优质厂家推荐榜单

2025年口碑好的LSY-10型电流互感器/西安JSZV16-10R型电压互感器优质厂家推荐榜单行业背景与市场趋势随着我国电力行业的快速发展,智能电网建设步伐加快,互感器作为电力系统中不可或缺的关键设备,市场需求持续增长。…

2025年度杭州全日制专升本教育机构TOP5权威推荐:甄选机

近年来,全日制专升本报考热度持续攀升,2024年浙江省报考人数突破12万,年增幅达18%。然而,市场中教育机构质量参差不齐,考生常遭遇师资参差、互动缺失、督学形式化等痛点——53%考生反馈机构赠送资料冗余过时,58%…