ReplicaSet的功能類似於 Replication Controller ,而 ReplicaSet 和Replication Controller之間的唯一區別是有沒有支援 selector .Replication Controller只支援使用等於的 selector(env = dev或environment!= qa),但ReplicaSet還支援基於集合的 selector(版本在(v1.0,v2.0)或env notin(dev,qa))。。
雖然ReplicaSets可以獨立使用,但是它主要被部署作為協調pod創建,刪除和更新的機制。
首先,我們先建立一個 frontend.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
matchExpressions:
- {key: tier, operator: In, values: [frontend]}
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 80
以上的 yaml 會建立一個pod裡面包含了redis 跟 guestbook