【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十三)

本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

思考一下问题:

91、Replica Set 和 Replication Controller之间有什么

区别?

参考答案:

复制代码
Replica Set 和 Replication Controller 都是 Kubernetes 中用于确保运行指定数量的 Pod 副本的资源。它们都用于提高应用的可用性和扩展性,但主要区别在于它们的功能和使用场景。

### 1. **Replication Controller (RC)**
Replication Controller 是 Kubernetes 的早期组件,用于确保任何时候都有指定数量的 Pod 副本在运行。如果有过多或过少的副本,Replication Controller 会相应地启动或终止 Pod,以匹配所需的副本数。它的主要特点和功能包括:
- **确保副本数量**:保证集群中运行指定数目的 Pod 副本。
- **自我修复**:如果一个 Pod 失败,RC 会自动创建新的 Pod 来替代。
- **简单的选择器**:使用基础的标签选择器来管理 Pod 组。

### 2. **Replica Set (RS)**
Replica Set 是 Replication Controller 的一个替代和增强,提供了更强大的 Pod 选择能力。Replica Set 是在 Kubernetes 1.2 版本中引入的,它支持基于集合的选择器,这允许更复杂的选择逻辑。其主要特点和功能包括:
- **支持集合选择器**:除了基础的等式选择器外,还支持集合操作,如 `in`, `notin`, 和 `exists`。
- **确保副本数量**:与 RC 类似,RS 也确保指定数量的 Pod 副本始终在运行。
- **自我修复能力**:如果一个 Pod 失败,RS 会自动替换它。
- **更广泛的应用**:由于其强大的选择器功能,RS 是创建 Deployment 时的首选。

### 主要区别
- **选择器的功能**:Replica Set 支持更复杂的选择器,这是它与 Replication Controller 最主要的区别。
- **推荐使用**:在新的 Kubernetes 部署中,推荐使用 Replica Set 或更高级的 Deployment(实际上使用 Replica Set),而不是使用 Replication Controller。

### 结论
虽然 Replication Controller 仍然在 Kubernetes 中受支持,但通常建议使用 Replica Set 或 Deployment,因为它们提供了更高级的功能和更灵活的配置选项。Replica Set 特别适用于需要复杂选择逻辑的场景,而 Deployment 在此基础上还添加了版本控制和回滚功能,是管理 Pod 副本的更先进工具。
相关推荐
lichenyang4534 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4534 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4534 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
运维开发故事3 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
探索云原生5 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美6 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程