Slide 9
Slide 9 text
1
kubectl apply -f deployment.yaml
Control Plane Node
Kubernetes Cluster
etcd
etcd etcd
Persistence Store
kube-apiserver
kube-apiserver
kube-apiserver
Each controller is run in parallel
by kube-controller-manager
node-controller
replicaset-controller
...
deployment-controller
kube-controller-manager
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:1.0.0
ports:
- containerPort: 80
kubectl run myapp --image=myapp:1.0.0 --replicas=3
kubelet
kube-proxy
container-runtime
kubelet
kube-proxy
container-runtime
Node
All external requests go through this hub
All internal requests for Object API go though this hub
2
Save Objects
3
Fetch Objects
5 Handle Objects
6
Update Objects
4
Fetch Objects
kube-scheduler
7
Create a Binding object to assign
newly created Pod to a suitable Node
Fetch Pods 8 Handle Pods
9
Update Pods
• Node selection is based on node available resources (memory, cpu...), balancing, data locality, or user's speci
fi
ed conditions...