ReplicaSet 是一种 Kubernetes 资源,可确保在任何给定时间都有指定数量的 pod 复制品在运行。它能自动替换失效或被删除的 pod,从而帮助保持应用程序的理想状态。


下面的示例演示了如何创建一个 ReplicaSet,以维护一个简单 Nginx pod 的三个副本。

[代码清单]

apiVersion: apps/v1
kind: ReplicaSet
metadata:
 name: nginx-replicaset
spec:
 replicas: 3
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
​    app: nginx
  spec:
   containers:
   - name: nginx
​    image: nginx:latest
​    ports:
​    - containerPort: 80

[执行结果]

使用 `kubectl apply -f <filename>.yaml` 应用此配置时,将看到以下输出,确认 ReplicaSet 已创建:
replicaset.apps/nginx-replicaset 已创建

ReplicaSet 的工作方式是使用选择器来识别它应该管理的 pod。在本示例中,选择器指定它应该管理带有 app: nginx 标签的 pod。模板部分定义了 pod 配置,包括容器映像和端口。如果三个 pod 中的任何一个崩溃或被删除,ReplicaSet 将自动创建新的 pod,以确保三个 pod 始终运行。

[小知识]

ReplicaSets 通常通过部署间接使用,部署可提供滚动更新和轻松回滚等附加功能。

kubectl get rs 命令可用于检查集群中 ReplicaSets 的状态。

了解 ReplicaSets 的工作原理对于在 Kubernetes 中管理应用程序的可用性和扩展至关重要。