You are on page 1of 16

Day -1 Kubernetes.

Docker Swarm -- it is basically an Orchestration system ,meaning of orchestration -


Hidden Mangaing

Orchestration is nothing but a managemnet of many containers.

Kubernetes is a portable extensible open source platform for managing containerzied


workloads and services.

Kubernetes also facilitaties both declartive configuration and automation .

Kubernetes (k8s) provides:


1.service discovery and load balancing
2.storage orchestration
3.Automated Rollouts and Rollbacks
4.Automatic bin packing
5.self healing
6.Secrets and configuration management

Installing Kubernetes

1.VMware --> 3 images Centos 8 VM's


u can setup the kubernetes

2.Choose any cloud AWS,AZUre,GCP

choose 3 VM's ,install of Kubernetes in these machine

3.Many of the cloud ,they are providing

GCP - GKE (Google Kubernetes Engine)


Azure - AKS (Azure Kubernetes services)
AWS - EKS (ELastic Kubernetes services)

4.Openshift

Lets us understand the History of Kubernetes

2003 - Google -- Omega and Borg --- run their application by using light weight
container method

2014 - Google gave this Omega as well Borg - Linux Foundations


sub foundation - CNCF - Cloud Native computing Foundatations

Kubernetes 2015 V1.0

V1.18

V1.22
V1.23.1
V1.23.2
V1.
V1.22.1
V1.22.2
V1.22.3

1--> Major release


22- Minor Version
1 2 3- Patch release

-----------------------------------------------------------------------------------
----------------------------
Day -2 ,Kubernetes Architecture
Different Installation Method
Kubernetes commands

Installation of Kubernetes cluster

1.Kubernetes cluster in a single node or in your own laptop --> minikube

2. Kubernetes Multi -Node - 2 VM (1 - Master ,1 -Node ,2-Node)


Kudeadm
kubespray
kops --> used in AWS cloud

3. IOT/ Arm processor - k3s

4. Native cloud
AWS - EKS (Elastic Kubernetes services)
Azure - AKS (Azure Kubernetes services)
Google - GKE (Google Kubernetes Engine)

5. Platform as service
Redhat -Openshift ( Docker and Kubernetes + Frontend GUI,Libraries )

6. katacode - 25 mins

Installation of Kubernetes - we will be kubeadm

1.Hardware requirement - Master - 2 CPU core,min 2GB Ram


Worker node - 1 CPU core,2GB Ram

AWS - t2.micro 1 CPU ,1GB RAM --> Dead slow


t2.medium - 2 CPU ,2 GB RAM

Kubernetes - 2 node t2.medium --> i have installed,setup 30 mins ,do


for practise ,terminate

tomorrow - 2 node again 20 mins

We will use 2 VM's in AWS -> we will prefer Ubuntu 20

sudo apt-get update


sudo apt-get install curl -y

To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.


Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as
root:

kubeadm join 172.31.80.79:6443 --token j1xu5c.easj27u24hy88z78 --discovery-token-


ca-cert-hash
sha256:8e5ca3b533d4a6296e39bed25cab0559a8494c1314f4e2c8b24d5de458aa4b8b

kubetcl get nodes

FOr enabling the network ,there are many network addons available
Weave
Fannel
Crasito

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version |


base64 | tr -d '\n')"

-----------------------------------------------------------------------------------
------------------

Day-3 notes

root@ip-172-31-92-69:~# hostnamectl set-hostname master


root@ip-172-31-92-69:~# bash
root@master:~#

root@ip-172-31-85-91:~# hostnamectl set-hostname worker-1


root@ip-172-31-85-91:~# bash
root@worker-1:~#

kubeadm

Docker

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as
root:

kubeadm join 172.31.92.69:6443 --token h5ji2w.fjk5futv6sr1u64f --discovery-token-


ca-cert-hash
sha256:9eecc24558c8be96f99cde3d0328c72f702b7537a830e6b2ae3568a678e05abc

Network pod,there are many networking model which is support by kubernetes


waeve network pod
calisto network pod

root@master:~# kubectl get node


NAME STATUS ROLES AGE VERSION
master NotReady control-plane,master 81s v1.22.4
root@master:~# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$
(kubectl version | base64 | tr -d '\n')"
serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.apps/weave-net created
root@master:~# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 3m9s v1.22.4

Worker-node-1 : Installation steps

root@worker-1:~# sudo apt-get update


Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 https://download.docker.com/linux/ubuntu bionic InRelease
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
Reading package lists... Done
root@worker-1:~# sudo apt-get install -y apt-transport-https ca-certificates curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
ca-certificates is already the newest version (20210119~18.04.2).
curl is already the newest version (7.58.0-2ubuntu3.16).
apt-transport-https is already the newest version (1.6.14).
0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded.
root@worker-1:~# sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-
keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
root@worker-1:~# echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-
keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee
/etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg]
https://apt.kubernetes.io/ kubernetes-xenial main
root@worker-1:~# sudo apt-get update
Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:5 https://download.docker.com/linux/ubuntu bionic InRelease
Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B]
Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages
[51.6 kB]
Fetched 61.0 kB in 0s (126 kB/s)
Reading package lists... Done
root@worker-1:~# sudo apt-get install -y kubelet kubeadm kubectl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
conntrack cri-tools kubernetes-cni socat
The following NEW packages will be installed:
conntrack cri-tools kubeadm kubectl kubelet kubernetes-cni socat
0 upgraded, 7 newly installed, 0 to remove and 28 not upgraded.
Need to get 73.5 MB of archives.
After this operation, 318 MB of additional disk space will be used.
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic/main amd64 conntrack
amd64 1:1.4.4+snapshot20161117-6ubuntu2 [30.6 kB]
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic/main amd64 socat amd64
1.7.3.2-2ubuntu2 [342 kB]
Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools
amd64 1.19.0-00 [11.2 MB]
Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64
kubernetes-cni amd64 0.8.7-00 [25.0 MB]
Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet
amd64 1.22.4-00 [19.1 MB]
Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl
amd64 1.22.4-00 [9057 kB]
Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm
amd64 1.22.4-00 [8732 kB]
Fetched 73.5 MB in 2s (47.2 MB/s)
Selecting previously unselected package conntrack.
(Reading database ... 57827 files and directories currently installed.)
Preparing to unpack .../0-conntrack_1%3a1.4.4+snapshot20161117-
6ubuntu2_amd64.deb ...
Unpacking conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ...
Selecting previously unselected package cri-tools.
Preparing to unpack .../1-cri-tools_1.19.0-00_amd64.deb ...
Unpacking cri-tools (1.19.0-00) ...
Selecting previously unselected package kubernetes-cni.
Preparing to unpack .../2-kubernetes-cni_0.8.7-00_amd64.deb ...
Unpacking kubernetes-cni (0.8.7-00) ...
Selecting previously unselected package socat.
Preparing to unpack .../3-socat_1.7.3.2-2ubuntu2_amd64.deb ...
Unpacking socat (1.7.3.2-2ubuntu2) ...
Selecting previously unselected package kubelet.
Preparing to unpack .../4-kubelet_1.22.4-00_amd64.deb ...
Unpacking kubelet (1.22.4-00) ...
Selecting previously unselected package kubectl.
Preparing to unpack .../5-kubectl_1.22.4-00_amd64.deb ...
Unpacking kubectl (1.22.4-00) ...
Selecting previously unselected package kubeadm.
Preparing to unpack .../6-kubeadm_1.22.4-00_amd64.deb ...
Unpacking kubeadm (1.22.4-00) ...
Setting up conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ...
Setting up kubernetes-cni (0.8.7-00) ...
Setting up cri-tools (1.19.0-00) ...
Setting up socat (1.7.3.2-2ubuntu2) ...
Setting up kubelet (1.22.4-00) ...
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service â
/lib/systemd/system/kubelet.service.
Setting up kubectl (1.22.4-00) ...
Setting up kubeadm (1.22.4-00) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
root@worker-1:~# sudo apt-mark hold kubelet kubeadm kubectl
kubelet set on hold.
kubeadm set on hold.
kubectl set on hold.
root@worker-1:~# kubeadm join 172.31.92.69:6443 --token h5ji2w.fjk5futv6sr1u64f --
discovery-token-ca-cert-hash
sha256:9eecc24558c8be96f99cde3d0328c72f702b7537a830e6b2ae3568a678e05abc
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get
cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file
"/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file
"/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:


* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

kubeadm join 172.31.92.69:6443 --token bolnab.np6higdx1jf4zzs3 --discovery-token-


ca-cert-hash
sha256:05bf8f8bffc3f3ef8487d3a3d01b436f1504d82b8d049890ac92ef9da71efc61

kubeadm join 172.31.92.69:6443 --token n7l6d4.r0zy92bdjcqr4acm --discovery-token-


ca-cert-hash
sha256:3710df7bf6bc5a60c4ec1369af3c3cd14653aa091eaae42de2ff51d9ef189979

Day-4

Kubernetes cluster upgraded

Kubernetes Tokens

KUbernetes Objects

Introduction of pods

Namespaces

Kubernetes
V1.18.2---> V1.18.6

kubeadm join 172.31.84.0:6443 --token lk687r.klk9m5knhlvw18s7 --discovery-token-ca-


cert-hash sha256:e78840514b670575d47c1d82e702aa6684ab4b4028589a27063b265b8019f510

apt-mark unhold kubeadm && \


apt-get update && apt-get install -y kubeadm=1.23.6-00 && \
apt-mark hold kubeadm

Kubernetes Token and CA-certificates.

kubeadm join 172.31.84.0:6443 --token jhnz6p.0ifgqwtymcm1fa2a --discovery-token-ca-


cert-hash sha256:e78840514b670575d47c1d82e702aa6684ab4b4028589a27063b265b8019f510

kubeadm join 172.31.84.0:6443 --token lk687r.klk9m5knhlvw18s7 --discovery-token-


unsafe-skip-ca-verification

-----------------------------------
Day-5

Kubernetes Objects:
Kubernetes objects are persistent entities of your kubernetes system,entites is
nothing but it represent your state of the cluster

kubernetes object is "record of intent", once you create object,kubernetes will


make sure the object exists.

Every Kubernetes object has a specification (spec) and it has object status,
The specification is all about what we want and it is regarded as desired state and
the stauts is nothing
but the actual state of kubernetes

Every Kubernetes has a spec and the status

we specify object spec in the format of .yaml file (manifest file) and we the
status of the kubernets object after we apply the spec

kubectl ---> API Server

kubectl ---> API server


file format ---> API Server

Kubernetes provides a lot of resources,,, kubectl api-resources --List of all the


resources

Kubernetes API:
The core of the kubernetes control plane is the API server,this API -server exposes
http API's that lets
enduser and different parts of your cluster ,external componetns communicate each
others
kubernetes stors the serialized states of the objects by writing them to the etcd
database

To express the desired state ,we would be creating the specification of the
kubernetes resources
* pod
*container
*ephermel containers
* Replication Controllers
* Replica sets
* Deployments
* statefuset
* Daemon sets
* Job
* CronJob
* Horizontal pod Auto scaler

API groups and Versioning :

Kubernetes supports mulitple apiVersion ( Core Apiversion)


API groups make it easier to extend the kubernetes api.The API group is specified
in the REST path and is in the form
__apiVersion__ field of serialzied objects

There are several apigroups:

Core api group,Rest path /api/v1---> v1

Named groupd --> /api/$GROUP_NAME/$version

/api/batch/v1 ---> batch/v1

#### Kubectl

Kubectl is command line utlity for interacting and performing various operation on
Kubernetes

Kubectl has 2 ways of managing the cluster


1. Imperative method--> we create object by executing the command,or kubectl
commands
kubectl get pods
kubectl get nodes
kubectl apply -f hello-pod.yaml

2.Declartive method
.yaml ,apply ,delete

How kubectl communicates with kuberentes:

The API Servers manages communication in kubernetes ( for the developer it look
like it a API gateway)

To achieve the communication,the API server implement RESTFULL API over http and
https to perform
CRUD operations to populate and modify k8s API objects (pods,service,deployments)

-----------------------------------------------------------------------------------
----------------------------
Kubernetes Day-6

Introduction of pod

Namespaces

Taint node

Label

Pod - resources ,limits

Health Check - Liveness ,Readness

A pod is nothing but ,it is smallest deployable unit in Kubernetes system

each pod will be assgined a unique IP address

-----------------------------------------------------------------------------------

Day -7

Namespaces

Taint

Labels

Namespaces-- Kubernetes supports multiple virtual cluster backed with the same
physical cluster ,this virtual cluster is called as namespace

kubectl port-forward web-server 8081:80 --address 0.0.0.0

Taints: node-role.kubernetes.io/master:NoSchedule

To remove the taint in the master,execut the command


kubectl taint node master node-role.kubernetes.io/master

To set the taint in worker-1 node


kubectl taint node worker-1 key=value:NoSchedule

To set the taint in worker-2 node with new ways


kubectl taint node worker-2 key=value:NoExecute

--------------------------------------------------
Day-8

Kubernetes Labels
Kubernetes ResourceQuota and LimitRange

/etc/kubernetes/manifests/kube-apiserver.yaml
---- PodNodeSelector
--enable-admission-plugins=NodeRestriction,PodNodeSelector

root@master:~# kubectl edit namespace project-1


metadata:
annotations:
scheduler.alpha.kubernetes.io/node-selector: node=worker1

-------------------------------------------------------------------------

Day-9 (50%)

ResourceQuota ,LimitRange

Controllers
services -- cluserip,nodeport ,loadbalanceer - 5 sessions

wednesday - 10PM

sat,sun - end 0f january

kubernetes - Helm,Servicemesh,isitio , integration of kubernetes with


promethus ,grafanna, integration of kubernestes with ELK
Kubernests as service (Paas) AWS (EKS) - 5 sessions ,Azure ,Google

1 trouble shooting ,

4 session - CKA

Feb - 2nd week - 35 to 40 hours only on kubernetes

/var/lib/kubelet -> config.yaml


maxPod: 10000
-----------------------------------------------------------------------------------
------
Kubernetes Day-10

LimitRange- we can set to pod,containers,volumes

Limitrange - pods

Pod Controllers

AWS- Autoscaler -- VMmachine in aws ,

Replication controller can only montior only 1 label as selector ,it cannot
monitoring multiple labels

It only monotor the Equality based Selector - only 1 label it can monitor

Replicset - monitor the Set-based selector

Replication controller will support for Rolling update of the applications .

Replicaset will not support any rolling update of the application running inside
the pod
what is the difference between replication controller and deployment?
In Replication controller- there is downtime of the application ,where in
deployment there is no downtime

In case of Replication controller,there is no roll-back,where in the Deployment,we


have undo or we call as roll-back facility is there in Deployments

-----------------------------------------------------------------------------------
----------------------

Kubernetes Day - 11

V1.18 --> kubernetes has removed the rolling update feature in


ReplicationController

kubetcl rolling-update rc-demo --update-period=10s -f rc.yaml

In case of Replicaset,we have 2 operator - In,NotIn

Rolling update methods in Deployment


1.File method
2. kubectl set image deployment.apps/nginx-deployment nginx=nginx:1.7.1 --
record=true
3.kubectl edit deployment.apps/nginx-deployment

root@master:~# vi rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: mycloud
spec:
replicas: 3
selector:
team: dev
template:
metadata:
name: mycloud
labels:
team: dev
spec:
containers:
- name: mycloud
image: nginx:1.7.1
ports:
- containerPort: 80

root@master:~# vi web.yaml
apiVersion: v1
kind: Pod
metadata:
name: web-server
spec:
containers:
- name: web-server
image: nginx
-----------------------------------------------------------------------------------
-----------------------------

Kubernetes Day -13

init container
Multi container pod

Kubernetes Volumes

Troubleshooting

AWS EKS

Kubernetes HELM,ISITIO,SERVICEMESH

Kubernetes integration Prometheus GRaffana , ELK

Kubernetes Topics covered in upcoming sessions

1. Services - Node port


2. Kubernetes Networking - LoadBalancers (Ingress)
3. Init Containers
4. Multi Container Pods
5. Kubernetes Persistant volume and PVC
6. Horizontal Pod Auto Scaling
7. Kubernetes Daemonset,jobs,Statefulset, Affinity
8. Kubernetes - Secrets,configmaps
9. Kubernetes - RBAC,Probes (Liveness,Readiness)
10.Kubernetes - Monitoring,Logging,Debugging,Troubleshooting
11.Kubernetes - Integration with Promotheus with Grafana
12.Kubernetes - Intergration with ELK
13.Kubernetes - AWS EKS
14.Kubernetes - Azure AKS - How to create Azure Kubernetes service in Azure portal
15.Kubernetes - GKE - How to setup Kubernetes in Google cloud platform
16. Kuberne HELM
17. Kubernetes - ServiceMesh and Isitio
18. Kubernetes - Preparation on CKA (Certified Kubernetes Adminstrator) and Roadmap
to other ceritifications
tes - Introduction to HELM,usage of
There are some very interesting topics in Kubernetes like Pod
Security ,CoreDNS,etcd,cni,Playing with Network Plugin (Calico,Waeave and others
Plugins),Kompose,Metrics Server,DashBoards,Service Accounts,Kubernetes- The Hard
way,Operating system upgrade within a Kubernetes Cluster

-------------------------------------------------------------------------------
Kubernetes Day - 14 session

Thursday - Multi-container and Probes

Saturday - Volumes and Affinity

Sunday - HPA, Daemonset, Configmap and secrets

root@master:~# cat .vimrc


set noautoindent

------------------------------------------------
Kubernetes Day - 15

1.Daemon set

2. scheduling Topologies

3. Affinity and AntiAffinity

4.Static pods

5. RBAC ( ROle Based access control)

6. Probes (livenessprobe and Readiness Probe)

7.HPA (Horizontal pod Autoscaler)

8. Kubernetes Volumes

9.Configmap and secrets

10.HELM,ISITO, Promotheus & Grafana with Kubernetes

11.Kubernetes in AWS(EKS),Azure(AKS) and GCP (GKE)

12.Troubleshooting
13.Intregration of Kubernetes with Jenkins

13. CKA

kubeadm join 172.31.82.252:6443 --token k7vkan.uljmi5opn8pgcvm3 --discovery-token-


ca-cert-hash
sha256:2a656b1d615b558805356f8207a2f8b954c42fa52ac17ea578c99c02e5b44582

-----------------------------------------------------------------------------------
-------------
Kubernetes Day - 16

1.Kubernetes Volumes

2.RBAC - Role Based Access Controllers

cat << EOF | sudo tee /etc/docker/daemon.json


{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

sudo systemctl enable docker


sudo systemctl daemon-reload
sudo systemctl restart docker
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.


Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as
root:

kubeadm join 172.31.81.134:6443 --token 77krti.x7wa59ykesxxmpmj \


--discovery-token-ca-cert-hash
sha256:858e9e022c0e2c324905b59bf55011fc3a67cbc6c37202bd142cfdc20ae3c3ab

-------------------------------------------------

Kubernetes Day - 17

Configmap and Secrets -- 30 to 40 mins


Kubernetes Probes - 20 mins

Secrets is basically its Namespace oriented

Secrets stores the sensitive information like key/value pairs or it stores some
password or even you want encrpt the tls certificates or sometime
even you want encrypt files

mysql

value: redhat

secret always stores the information by encoding into base64

configmap -- basically it is used to store non-senstive information

Integration of promtheus and Grafana with Kubernetes --->

installing the kubernetes using kops ---In AWS --->

Kuberetes PASS in GKE - 2 sessions

Troubeshooting of Kubernetes

Terraform - only weekend i will take , in weekday - any day call u to continue with
left out topics of kubernetes

----------------------------------------------------------------------
Kubernetes Day-18

Kubernetes Probes,Introduction to Helm

Probe is health check,that can be configured to check the health of the container
running in the pod.
A probe may return the following results
1.success
2.failure
3.unknown

Types of Probes:
1.Liveness Probe:
This probe is used to determine if the particular container is running or
not ,if a container fails the liveness probe,then controller
will try to restart the pod in the same node,it is all based on Restart Policy
-- , the default restart policy is Always

2.Readiness Probe:
This Probe is used to determine wheather a particular container is ready to
receieve the request or not ,if this fails then
kubernetes controller will ensure the pod doesn't recieve any request

Implementation of the probes:


1.Command probes: in this probe the controller will get the contaienr to execute
specific command in order to perform probe in the container

2.HTTP Request probes: In this probe ,the conttoller will send GET Http request to
the given address to either port or hostname to perform the probe on the container,
we can set the follwoing fields to configure the http probe
* port number
*path
* hostname
*http header
* TCP socket probe

Restart Policy:
1.Always: Always restart the pod whenever it terminates

2.On Failure:

3.Never

rajeshsingh.com/home

rajeshsingh.com/inventories

Helm --- > Package Manager in Kubernetes

Ubuntu

Redhat

Centos
Helm is basically used to manage all the manifest files or Yaml files - APplication
very easyily ..

You might also like