Administrator
发布于 2026-08-14 / 2 阅读
0
0

第六章.k8s Service-Service概念原理2

来源链接:https://www.bilibili.com/video/BV1PbeueyE8V?spm_id_from=333.788.videopod.episodes&vd_source=0e85828f19fba96334ebaebea2da3e2f&p=34

第六章 K8s Service 概念原理2 学习笔记


1. kubectl edit 命令详解

1.1 核心作用

kubectl edit 可直接修改存储在 etcd 中的资源对象原始配置,授课中类比为修改资源对象的「底层基因」,从根源改变其运行逻辑,修改后无需额外执行 apply/replace 操作即可生效。

1.2 实操示例:修改 Deployment 触发滚动更新

  • 修改目标:对应 Service 关联的 Deployment 控制器
  • 场景1:镜像版本变更
    将容器镜像版本从 1.0 修改为 2.0,保存退出后会自动触发滚动更新,通过 kubectl get pod 可观察到 Pod 重建过程,更新完成后通过 curl 访问对应 Service 可确认返回版本已变为 2.0。
  • 场景2:滚动更新策略参数校验
    尝试修改滚动更新策略的 maxSurge 参数(即允许超出当前副本数的最大比例),若输入超出合法范围的错误值(如 25000、25.0000 等),保存时会触发配置校验,自动回滚非法输入或提示配置错误,禁止错误值写入 etcd。

1.3 命令使用说明

  • 基础语法:kubectl edit <资源类型> <资源名称>
  • 编辑体验:默认调用系统配置的默认编辑器,操作逻辑与直接编辑 YAML 资源清单文件完全一致。

2. 修改 kube-proxy 工作模式(iptables 切换为 IPVS)

2.1 前置背景

kube-proxy 是 K8s 集群中实现 Service 流量转发与负载均衡的核心组件,默认工作模式为 iptables,本小节演示如何将其切换为性能更高的 IPVS 模式。

2.2 完整操作步骤

  1. 编辑 kube-proxy 的 ConfigMap 配置:
    执行命令:kubectl edit configmap kube-proxy -n kube-system

    注意:kube-proxy 的 ConfigMap 存储在 kube-system 命名空间,不属于默认 default 命名空间,操作时必须指定 -n kube-system 参数,否则默认在 default 命名空间查找会报错。

  2. 修改配置项:找到 ConfigMap 中的 mode 字段,默认值为 iptables,将其修改为 ipvs 后保存退出。
  3. 重启 kube-proxy Pod 使配置生效:
    由于应用不会自动重载配置,必须手动删除 Pod 触发重建才能加载新配置:
    • 先通过标签选择器筛选 kube-system 命名空间下的 kube-proxy Pod:kubectl get pod -n kube-system -l k8s-app=kube-proxy
    • 删除筛选出的 Pod:kubectl delete pod -n kube-system -l k8s-app=kube-proxy
    • kube-proxy 的 Pod 会被集群控制器自动重建,重建完成后新配置生效。

2.3 生效验证

  1. 执行 ipvsadm 命令可查看生成的 IPVS 负载均衡规则,可观察到对应 Service 的 ClusterIP、端口、轮询算法(round robin)以及后端真实 Pod 的 IP 地址列表。
  2. 执行 kubectl get svc 可查看 Service 的配置信息,确认 IPVS 规则与 Service 定义匹配。

2.4 IPVS 模式核心原理

访问 Service 的 ClusterIP 时,请求会先到达本机的 IPVS 集群,IPVS 按照配置的负载均衡算法(默认 round robin 轮询)将请求转发到后端匹配的 Pod 上,最终实现 Service 的负载均衡能力。


AI 总结

本小节围绕 K8s Service 的底层配置与原理展开,首先讲解了直接修改 etcd 存储资源对象的 kubectl edit 命令用法,包括修改 Deployment 触发滚动更新的逻辑、配置合法性校验机制;随后实操演示了将 kube-proxy 默认的 iptables 工作模式切换为 IPVS 模式的完整流程,并梳理了 IPVS 实现 Service 负载均衡的核心转发逻辑,帮助理解 K8s Service 底层的流量处理机制。


评论