
Welcome to Certified Kubernetes Administrator (CKA) Master Course
Difference and relation between Bare metal, Virtual Machines, and Containers
Role of Hypervisor in Virtual machines
Resource sharing with virtual machines
Container and Docker engine introduction
The lifecycle of Docker from docker installation and concepts on the following
Prerequisites to install docker
Introduction to Docker Image
Creating a container from the docker image
Concept of multiple containers in a docker-engine
Overview of container orchestration
Advantage and need for container orchestration
orchestration within master-worker architecture
Understand the concept of scalability
How scalability is achieved using containers
Concept of high availability
Achieving high availability using different zones
Understand how clouds achieve and provide scalability and high availability
Introduction to different components in Amazon Web Services (AWS) Cloud
Overview of Elastic Compute Cloud (EC2)
Overview of Elastic Block Storage (EBS)
Overview of regions and zones to achieve high availability and scalability
Introduction to Elastic load balancer (ELB)
Overview of Virtual Private Cloud (VPC)
Overview of Elastic Network Interface (ENI)
Overview of EC2 Images using Amazon Machine Image (AMI)
AWS Free tier and its eligibility
Different types of installation of Kubernetes
Introduction to cloud solutions like Elastic Kubernetes Service (EKS)
Minikube installation as VM
Minikube installation on a native operating system
Introduction to kubectl
Introduction to play with Kubernetes labs
Distributed Kubernetes installation
Different components of Kubernetes introduction
Introduction to Pods
Master worker architecture of Kubernetes cluster
Different controllers for node, replication, etc.,
Introduction to container runtime and kubelet
Kube Scheduler role and introduction
Introduction to API-Server
etcd database and its role
Download and installation of Minikube in windows
Setting required environmental variables
Installing and configure kubectl executable
Verify and test Minikube
Check the status fo Minikube
Create sample deployment to test the installation
Get the list of pods and verify
Verify Minikube web UI and verify
Introduction to AWS EC2
Select AMI from AWS Market place
Configure Instance VPC and other details
Add storage to EC2
Configure security group
Create key pair
Launch and login to Instance using SSH Client like putty
Verify running instance and check instance pricing details
Setup AWS EC2 instance with earlier defined AMI
Login to EC2 Instance
Create users and groups for docker
Install docker
Start docker service
Download and install Minikube
Start Minikube
Install Kubectl
Verify Kubectl and Minikube installation
Start Kubectl proxy to access Web Dashboard
Introduction to Dockerfile, Docker Image, Repository, Docker Container, Docker Engine
Create sample Dockerfile
Build dockerfile with a sample PHP file
Introduction to docker hub repository
Tag docker image
Push docker image to docker hub repository
Run a sample container with the image in docker hub
Verify the list of running containers
Introduction to YAML file and its syntax
Different members of yaml file
Adding maps, keys, values to yaml file
Handling maps of maps, maps of list, lists of lists, lists of maps
Using template and selector in Kubernetes yaml file
Verify the status of Kubernetes environment
Run a sample pod with Nginx image
Check the status of the pod
Describe the pod to get more details on the pod
Delete the pod
Create sample yaml file with Nginx image
Kubernetes API doc overview on yaml elements
Create pod by applying the yaml file
Describe and verify the pod IP and port details
Map port between container and Host
Configure address forward using port-forward
Access using curl and verify port forward configuration
Opening bash shell using exec command
Copy files between containers and host
Introduction to Replicaset
Configure replicas in yaml file
Details on Selector, label matching and template
Create replicaset and verify the pod count
Delete a pod and verify the number of pods at desired, current and ready state
Introduction to deployments in Kubernetes environment
Create yaml file with deployment as kind
Details on replicas, selector and template in deployments
Verify selector in deployment describe command
Introduction and purpose of service in Kubernetes environment
Port configuration with nodePort, port, protocol and targetPort in service
Create service with node port
Access Nginx service from the browser using node port
Purpose of label and selector in yaml file
Create guestbook sample application
Overview of label selector with the sample application
List the labels of the pod with -L option
Use --selector to list the pods
Use --show-labels to display pod labels
Select multiple labels using 'in' --selector
Using different operator like ! for not
Introduction to Volumes in containers
Attaching volumeMounts to Pod containers
Introduction to emptyDir volume
Check the mount path in container description
Check volume mapping to host machine
Create folder and files in mapped location in host machine and verify
List of volumes under cache-volume for pods
Introduction to persistent claim in volume
Introduction to different storage class
Access mode and capacity configuration in the persistent volume
Introduction to persistentVolumeClaim
Various stroageClassName
Creating the claim
Creating the pod using the claim
Check the mount volume
Add files to the mount path
Delete the pod, claims and volume
Introduction to Config maps.
Purpose and its use of config maps
Creating sample config maps with multiple keys
Create pod by using the config maps
Verify how config maps used in pods by checking the logs
Introduction to secrets
Use and purpose of secrets in config maps
Verify created secret
Introduction to Namespace
Use and purpose of Namespace
Create new namespace
Create new pods in new namespace
List various entity in new namespace
Create pods, deployments, service and various entity in new namespace
Delete and clean namespace and all entities
Pre-requisites for kubeadm installation
Configuration changes on Selinux, iptables, swapoff for kubeadm
Kubeadm and kubelet interaction and configuration
Choose instance type for AWS EC2 Instance
Choosing the storage for AWS EC2
Configure security group and open the required ports for group and SSH access
Configure keypair for AWS EC2 login
System update with yum
install yum utils, device-mapper, lvm2 libraries
Add docker CE repo and install docker
Enable docker daemon and start docker
Configure iptables, SELinux and swapoff
Add Kubernetes repo
Install kubelet, kubeadm, kubectl using yum
Enable kubelet using systemctl
Start kubelet
Create Amazon Machine Image (AMI) to create more instances
Initialize pod network with cidr block
Use the kubeadm to join the cluster using the provided token
Work with config files in .kube folder
Verify the entities created in kube-system namespace
Create worker machines with custom made AMI
Login to workers and join with the cluster using kubeadm command
Verify all the node status
List the active tokens
Describe all the nodes in the cluster
Verify each nodes resource usage and limitation
Describe an individual node for roles, labels, annotations, and other details
Create a sample guest book application to check Kubernetes functions
Check the list of pods and service to verify the installation
Cleanup the installation and terminate the AWS EC2 instances
Introduction to different core components
The relation between the control plane and run time components
Introduction to apiserver, controller manager, scheduler, etcd, kubelet, Kube-proxy, and container runtime
Understand various component with an analogy
Verify various component in Kube-system namespace
Different types of installation overview
Compare Minikube installation with a fully distributed cluster installation
Types of service/daemon runs in master and worker machines
Purpose and role of Controller, Scheduler, etc, coredns
Purpose and role of kubectl, kubeadm, kubelet
Introduction to etcd database
Concept of key-value database
Describe etcd pod in kube-system namespace
Verify etcd configuration
Login to etcd pod using /bin/sh shell
Check the certificate created within /etc/kubernetes/pki/etcd/ folder
Connect to etcd database
List the key-values stored within it
Installation and connection details of etcd
Detailed discussion on kubeapiserver
Describe kubeapiserver pod in the kube-system namespace
List the security keys for apiserver at /etc/kubernetes/pki
Access kubeapi server using curl using kubectl proxy
Verify response from curl
Detailed discussion on controller manager
Role and purpose of different controllers
Discussion on kube controller manager yaml file
Arguments and configuration on different containers
Detailed discussion on role and purpose of Kube scheduler
Scheduler role on Limits, selector, Affinity, Taints, Tolerations, Daemonsets, Events, etc
Detailed discussion on kube scheduler yaml file
Access scheduler pod shell with /bin/sh
Verify different keys used by the scheduler
Detail discussion on kubelet
Role and purpose of kubelet
kubelet configuration files at /etc/kubernetes/
Detail discussion on kubelet.conf
Kubelet process and log analysis
Detailed discussion on kube proxy
The architectural design of kube proxy
Describe kube proxy pod in kube-system name space
Check and view the logs of kube proxy
Detailed discussion on coreDNS
Role and purpose of coreDNS
Describe coreDNS pod in kube-system namespace
Create dnsutil pod to access coreDNS
Execute nslookup using dnsutils
Check /etc/resolv.conf using dnsutils
Check coreDNS logs
Detailed discussion on the manual scheduler
Create sample pod for demo
Discussion on built-in node labels
Purpose of node labels
Describe node to check built-in node labels
Create sample pod with labels for demo
Using the labels with selector
Detailed discussion on scheduler selector
Purpose and need of selector
Using --selector to get the specific pod
Discussion on selector added to the pods of service
Detailed discussions on annotations
Role and uses of annotations
Overview on annotations added by the system
Detailed discussion on taints and tolerations
Adding key, value, and effect
Different possible values and effects for Taints
Discussion on Taint based evictions
Different practical use cases where Taints can be used
Detailed discussion on NoExecute Taint Effect
The different selector to filter
Different effect for Taints like NoSchedule, PreferNoSchedule, NoExecute
Taint nodes with NoExecute and NoSchedule
Test the behavior of the nodes after applying taints
Detailed discussion on NoSchedule Effect with scheduler taints
Patch the node to add the taints for usecase
Edit a deployment to change the taint
Patch the node to remove the taint and clean the systems
Detailed discussions on tolerations
Different operators, values, and effects applicable to tolerations
Taint the nodes for the usecase
Add tolerations to the deployment for testing
Verify the behavior of the pods and nodes with and without tolerations
Demo on different toleration options for operator, value, and effect
Demo with operator Equal and Exists
Check the status of the nodes
Detailed discussion on Affinity and Anti-affinity
Usecases on using Affinity
Different types of node affinity
Different operators to use with node affinity
Detailed discussion on Affinity Selector
Different status on Requirement met, Requirement not met and requirement lost scenarios
Preparing nods and pods for the demo
Discussion on preferredDuringSchedulingIgnoredDuringExecution, requiredDuringSchedulingIgnoredDuringExecution and requiredDuringSchedulingRequiredDuringExecution
Detailed discussion on preferred nod affinity selector
Prepare nodes and pods for demo
Difference on preferredDuringSchedulingIgnoredDuringExecution, requiredDuringSchedulingIgnoredDuringExecution and requiredDuringSchedulingRequiredDuringExecution
Details on Pod Affinity
Impact of Required selector with pods
Understand how pod affinity helps to co-locate the pods which communicate intensively
Different use cases were pod affinity will be used
Detailed discussion on pod Anti-affinity
Scenarios where pod anti-affinity can be leveraged
Setup nodes and pods for pod anti-affinity use case
Detailed discussion on self repelling pods
Demo on creating self-repelling pods
Scenarios and use cases where self repelling pods will be used
Major domains of Kubernetes Administration for CKA exam
Scheduling
Logging/Monitoring
Application Lifecycle Management
Cluster Maintenance
Security
Storage
Troubleshooting
Core Concepts
Networking
Installation, Configuration & Validation
Installation, Configuration & Validation
Design a Kubernetes cluster
Install Kubernetes masters and nodes
Configure secure cluster communications
Configure a Highly-Available Kubernetes cluster
Know where to get the Kubernetes release binaries
Provision underlying infrastructure to deploy a Kubernetes cluster
Choose a network solution
Choose your Kubernetes infrastructure configuration
Run end-to-end tests on your cluster
Analyze end-to-end test results
Run Node end-to-end tests
Install and use kubeadm to install, configure, and manage Kubernetes clusters
Core Concepts
Understand the Kubernetes API primitives
Understand the Kubernetes cluster architecture
Understand Services and other network primitives
Application Lifecycle Management
Understand Deployments and how to perform rolling updates and rollbacks
Know various ways to configure applications
Know how to scale applications
Understand the primitives necessary to create a self-healing application
Cluster Maintenance
Understand the Kubernetes cluster upgrade process
Facilitate operating system upgrades
Implement backup and restore methodologies
Networking
Understand the networking configuration on the cluster nodes
Understand Pod networking concepts
Understand service networking
Deploy and configure the network load balancer
Know how to use Ingress rules
Know how to configure and use the cluster DNS
Understand CNI
Security
Know how to configure authentication and authorization
Understand Kubernetes security primitives
Know to configure network policies
Create and manage TLS certificates for cluster components
Work with images securely
Define security contexts
Secure persistent key-value store
Storage
Understand persistent volumes and know how to create them
Understand access modes for volumes
Understand persistent volume claims primitive
Understand Kubernetes storage objects
Know how to configure applications with persistent storage
Scheduling
Use label selectors to schedule Pods
Understand the role of DaemonSets
Understand how resource limits can affect Pod scheduling
Understand how to run multiple schedulers and how to configure Pods to use them
Manually schedule a pod without a scheduler
Display scheduler events
Know how to configure the Kubernetes scheduler
Logging/Monitoring
Understand how to monitor all cluster components
Understand how to monitor applications
Manage cluster component logs
Manage application logs
Troubleshooting
Troubleshoot application failure
Troubleshoot control plane failure
Troubleshoot worker node failure
Troubleshoot networking