一、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
|
apiVersion: apps/v1 与 kind: ReplicaSet 是必选项。
spec.selector 可以使用 matchLabels 或 matchExpressions,后者提供更灵活的匹配逻辑。
template.metadata.labels 必须完全匹配 spec.selector,否则 ReplicaSet 无法正确识别与管理 Pods。
三、部署与验证流程
- 部署 ReplicaSet:
1 2
| kubectl apply -f engine-x-multi-container.yaml
|
- 查看 ReplicaSet 状态:
- 清理操作
1
| 删除 ReplicaSet 及其所有关联 Pods:
|