Replication Controller, ReplicaSet
Template, Replicas, Selector
1. Template, Replicas
1-1) Pod
apiVersion: v1
kind: Pod
metadata:
name: pod1
labels:
type: web
spec:
containers:
- name: container
image: kubetm/app:v1
terminationGracePeriodSeconds: 0
1-2) ReplicaSet
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replica1
spec:
replicas: 1
selector:
matchLabels:
type: web
template:
metadata:
name: pod1
labels:
type: web
spec:
containers:
- name: container
image: kubetm/app:v1
terminationGracePeriodSeconds: 0
2. Updating Controller
ReplicationController -> ReplicaSet
ReplicationController
apiVersion: v1
kind: ReplicationController
metadata:
name: replication1
spec:
replicas: 2
selector:
cascade: "false"
template:
metadata:
labels:
cascade: "false"
spec:
containers:
- name: container
image: kubetm/app:v1
kubectl
kubectl delete replicationcontrollers replication1 --cascade=false
ReplicaSet
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replica2
spec:
replicas: 2
selector:
matchLabels:
cascade: "false"
template:
metadata:
labels:
cascade: "false"
spec:
containers:
- name: container
image: kubetm/app:v1
3. Selector
3-1) ReplicaSet
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replica1
spec:
replicas: 1
selector:
matchLabels:
type: web
ver: v1
matchExpressions:
- {key: type, operator: In, values: [web]}
- {key: ver, operator: Exists}
template:
metadata:
labels:
type: web
ver: v1
location: dev
spec:
containers:
- name: container
image: kubetm/app:v1
terminationGracePeriodSeconds: 0
Pod
apiVersion: v1
kind: Pod
metadata:
name: pod-node-affinity1
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIngnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- {key: AZ-01, operator: Exists}
containers:
- name: container
image: kubetm/init
Tip
MatchExpressions
Referenece
Kubernetes
- ReplicaSet : https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
- Labels and Selectors : https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- ReplicationController : https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/