k8s/StudyNotes
k8s/StudyNotes/cubectl k8s/StudyNotes/Deployments
* kubeadm
- deploys all the kubernetes services downloaded from web
* Kube-Scheduler
- Filter Nodes (Pod cant fit)
- Rank Nodes (Compare resources left, try to balance cpu/mem usage)
- kubelet - captain on each Worker Node
- Registers with Master node, reports status and executes
Always manual install wget https://storage.googleapis.com/kubernetes-release/release/v1.xx.x/bin/linux/amd64/kubelet
- Not kubeadm managed.
- Needs tls bootstrap
- Kube-proxy - run on each node, service's virtual component
- All pods can see all other pods, through POD Network, by IP/Name. Exposed through service: eg. db(IP)
- Watches for service creation, and then configure network e.g. Iptables to forward to actual pod.
- Install: download wget to install or
- kubeadm will deploy it as deamon set to each pod in namespace kube-system
- PODs
- smallest object in k8s, contains containers, can contain one or more containers
- scale service by creating more pod instances.
- additional container could be helper container.
- network space is shared between containers in the same pod, they can communicate on localhost.
- k8s Controllers - the brains
ReplicaSets - Replication controller -> newer -> Replica Sets
yml definition ReplicationController same 4 sections as other configs
- apiVersion: v1
kind: ReplicationController
- metadata:
- name: myapp-rc labels:
- app: myapp type: front-end
- name: myapp-rc labels:
- spec:
- template:
<pod definition nested, with same 2 sections, metadata, spec>
- template:
yml definition newer ReplicationSet, requires selector:
- apiVersion: apps/v1
kind: ReplicaSet
- metadata:
- name: myapp-rc labels:
- app: myapp type: front-end
- name: myapp-rc labels:
- spec:
- template:
<pod definition nested, with same 2 sections, metadata, spec>
- matchLabels:
- type: front-end
- template: