Cluster Architecture
Master Node
- Manage
- Plan
- Schedule
- Monitor Nodes
Worker Nodes
- Host Application as Containers
Kubernetes Architecture
Master Node
- kube-apiserver
- Controller-Manager
- Node-Manager
- Replication-Manager
Worker Nodes
- kubelet is manager of a node
- Kube Proxy
kube-api server Execute Process
- Authenticate User
- Validate Request
- Retrieve data
- Update ETCD
- Scheduler
- Kubelet
api-server options
1
| cat /etc/kubernetes/manifests/kube-apiserver.yaml
|
1
| cat /etc/systemd/system/kube-apiserver.service
|
1
| ps -aux | grep kube-apiserver
|
ETCD
ETCD is a distributed reliable key-value store that is Simple, Secure & Fast
Install ETCD
Download Check official ETCD. The direct link is here.
Run
Operate ETCD
1
| ./etcdctl set key1 value1
|
1
2
| ./etcdctl get key1
# value1
|
ETCD in Kubernetes
ETCD Cluster
- Nodes
- PODs
- Configs
- Secrets
- Accounts
- Roles
- Bindings
- Others
Setup
Manual
kubeadm
1
| kubectl get pods -n kube-system
|
1
| kebuectl exec etcd-master -n kube-system etcdctl get / --prefix -keys-only
|
ETCD Commands
To Set Version
ETCD Version 2
1
2
3
4
5
| etcdctl backup
etcdctl cluster-health
etcdctl mk
etcdctl mkdir
etcdctl set
|
ETCD Version 3
1
2
3
4
| etcdctl snapshot save
etcdctl endpoint health
etcdctl get
etcdctl put
|
kube-controller-manager
List
- Node-Controller
- Replication-Controller
- ReplicaSet
- Service-Account-Controller
- CronJob
- Job-Controller
- Deployment-Controller
- Namespace-Controller
- Endpoint-Controller
- PV-Protection-Controller
- Stateful-Set
Main Functions
- Watch Status
- Remediate Situation
Option Examples
Node Monitor Period = 5s
Node Monitor Grace Period = 40s
POD Eviction Timeout = 5m
kube-controller-manager Options
1
| cat /etc/kubernetes/manifests/kube-controller-manager.yaml
|
1
| cat /etc/systemd/system/kube-controller-manager.service
|
1
| ps -aux | grep kube-controller-manager
|
Kube Scheduler
kube-scheduler just decide which POD
goes where.
Rule
Required CPU: 10
Node: 4
Node: 4
Node: 12
Node: 16
- Filter Nodes -> Except 4 Nodes
- Rank Nodes -> Picked Node: 16
kube-scheduler Options
1
| cat /etc/kubernetes/manifests/kube-scheduler.yaml
|
1
| cat /etc/systemd/system/kube-scheduler.service
|
1
| ps -aux | grep kube-scheduler
|
Kubelet
Functions
- Register Node
- Create PODs
- Monitor Node and PODs
Options
Kube Proxy
It’s to configure IP from the service name.