一、ReplicaSet 基础与原理

  • ReplicaSet 的职责:确保在任意时刻都维持指定数量的 Pod 副本,增强应用的可用性与稳定性。
  • 与 ReplicationController 的区别
    • ReplicaSet 支持更灵活的选择器机制(如 matchExpressions),而 ReplicationController 仅支持简单的等号匹配。 (注:文中原有网页引用在此省略)
    • ReplicationController 已逐渐被淘汰,ReplicaSet 是更现代、更高效的替代方案。

二、ReplicaSet YAML 基本结构与示例

以下是一个典型的 apps/v1 版本 ReplicaSet YAML 示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: engine-x-replicaset
labels:
app: engine-x
environment: production
spec:
replicas: 3
selector:
matchLabels:
app: engine-x
environment: production
template:
metadata:
labels:
app: engine-x
environment: production
spec:
containers:
- name: engine-x-container
image: your-image:tag
ports:
- containerPort: 80
# volumes 可按需添加,与多容器配置一致
  • apiVersion: apps/v1kind: ReplicaSet 是必选项。
  • spec.selector 可以使用 matchLabelsmatchExpressions,后者提供更灵活的匹配逻辑。
  • template.metadata.labels 必须完全匹配 spec.selector,否则 ReplicaSet 无法正确识别与管理 Pods。

三、部署与验证流程

  1. 部署 ReplicaSet:
1
2
kubectl apply -f engine-x-multi-container.yaml ##推荐
#或 kubectl create -f engine-x-multi-container.yaml
  1. 查看 ReplicaSet 状态:
1
kubectl get rs -o wide
  1. 清理操作
1
删除 ReplicaSet 及其所有关联 Pods: