Contents

Kubernetes Core Concepts

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

  1. Authenticate User
  2. Validate Request
  3. Retrieve data
  4. Update ETCD
  5. Scheduler
  6. 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

  1. Download Check official ETCD. The direct link is here.

  2. Run

1
./etcd

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

1
wget DOWNLOAD_URL
1
# etcd.service

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

1
export ETCDCTL_API=3

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

  1. Filter Nodes -> Except 4 Nodes
  2. 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

1
ps -aux | grep kubelet

Kube Proxy

It’s to configure IP from the service name.