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

第五章.k8sPod控制器-Pod控制器2

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

本课主题:Kubernetes ReplicaSet(RS)控制器详解

一、ReplicaSet(RS)基础特性

  1. 核心功能与RC(ReplicationController)一致:保证集群中运行的Pod副本数与RS的期望副本数保持一致,支持自动恢复异常Pod。
  2. 基础配置要素:
    • Pod模板:可定义Pod元数据、标签、容器镜像、环境变量、端口等配置,本课示例使用myapp V1.0版(含Linux服务器)作为容器镜像,示例配置包含环境变量GET_HOST_FROM=dns、端口80。
    • 标签规则:RS的标签选择器支持子集匹配,即Pod的标签只需包含选择器要求的标签即可,无需完全一致,可额外自定义其他标签(如domain、版本号等)。
    • 期望副本数:未指定时默认值为1。
  3. 自动恢复验证:删除RS管理的Pod后,RS会自动创建新的Pod补足副本数,保证副本数符合期望。示例:删除ID为5S9F6的Pod后,RS自动创建了ID为NCX6S8的新Pod,副本数仍维持在期望值3。

二、RS相比RC的核心优势:增强型标签选择器

RC仅支持标签子集匹配,RS额外支持通过matchExpressions配置匹配运算符,满足更复杂的标签匹配场景,支持的运算符包括:

  • Exists:Pod存在指定key的标签即可,不限制标签value
  • DoesNotExist:Pod不存在指定key的标签
  • In:Pod的指定标签value在给定的value列表中
  • NotIn:Pod的指定标签value不在给定的value列表中
    官方推荐优先使用RS替代RC,满足后续可能的灵活标签匹配需求。

三、标签选择器运算符实验验证

1. Exists运算符验证

  • 配置规则:matchExpressions中key为app,operator为Exists,即只要Pod存在app标签,无论value是什么,均属于该RS管理。
  • 验证逻辑:
    1. 修改RS管理的Pod的app标签值为任意内容(如“薪享宏福”),RS不会创建新Pod,说明标签value不影响匹配结果。
    2. 删除Pod的app标签后,RS会自动创建新的符合要求的Pod,验证Exists规则生效。
  • 匹配逻辑补充:RS仅管理由自身创建的Pod,且Pod标签符合选择器规则才会被纳入管理,避免误匹配其他同名Pod。

2. In运算符验证

  • 配置规则:matchExpressions中key为app,operator为In,values列表包含spring-k8s、哈哈哈两个值,即Pod的app标签value必须为列表中任一值才符合要求。
  • 验证逻辑:
    1. 若Pod模板的app标签值不在给定列表中,RS创建时会直接报错(新版本K8s会在创建时自动校验模板标签是否符合选择器规则,避免无效资源创建)。
    2. 修改Pod的app标签值为列表内的值(如spring-k8s或哈哈哈),RS不会创建新Pod,符合预期。
    3. 若修改Pod的app标签值为列表外的值,RS会自动创建新的符合要求的Pod,验证In规则生效。

四、RS标签灵活性的实际应用场景

同一个RS创建的Pod可通过修改标签,被不同的Service(SVC)匹配,实现一套Pod资源供给多场景使用:

  • 示例:RS创建的Pod初始标签为app=星享宏福、env=stable,默认被标签选择器为app=星享宏福、env=stable的SVC匹配,通过负载均衡供给公网用户访问。
  • 若需要供给开发测试使用,可直接修改Pod的env标签为test,即可被标签选择器为env=test的SVC匹配,无需重新创建Pod或RS,灵活性远高于RC。

五、RS资源清理注意事项

  • 直接删除RS管理的Pod无意义,RS会自动重建被删除的Pod。
  • 清理RS创建的Pod需要从源头操作:删除对应的RS控制器,由该RS创建的所有Pod会被自动删除。

AI 总结

本课详细讲解Kubernetes ReplicaSet(RS)控制器的核心特性,对比了其与RC的差异,重点演示了Exists、In两类标签选择器运算符的用法与验证逻辑,同时说明了RS的资源清理规则。RS相比RC具备更强的标签匹配灵活性,可满足更复杂的业务场景需求,是Kubernetes集群中管理Pod副本的主流控制器。


评论