• Post category:StudyBullet-16
  • Reading time:26 mins read


Initial Training: Original Kubernetes by Cloud NCF for Devs, Analysts and Curious + Devops Project + Love for Teaching ♡

What you will learn

Orchestrate a professional application in the Final Project of the Course, but first, you will learn…

What is a container orchestrator, and what are they used for.

Study the concepts, resources and components for the Certified Kubernetes Administrator (CKA) exam.

Install and configure Kubernetes locally.

Install kubectl, the command-line tool for controlling Kubernetes.

Learn from the basics: History, Fundamentals, and Concepts of Kubernetes.

Understand the components that make up a Kubernetes cluster.

Know the structure of YAML files used in Kubernetes.

Group containers into logical host models called Pods.

Maintain a stable set of replicas of running Pods using ReplicaSets.

Deploy, scale, rollout and rollback your applications with Deployments.

Understand basic Kubernetes internal networking infrastructure.

Learn to use the resource group isolation mechanism with Namespaces.

Understand, build, consume and manipulate different types of services using Kubernetes Services.

Understand and implement sanity checks for your applications with LivenessProbe.

Understand and manage minimum and maximum computational resources with Kubernetes Resources features.

Use Volumes for data persistence (emptyDir, hostPath and PersistentVolume).

Understand, build and manage daemons with powerful Kubernetes DaemonSets.

Run one-off processes or tasks with Kubernetes Jobs resources.

Design and schedule tasks/processes with Kubernetes CronJobs.

Store, use, and manipulate non-confidential configuration data using ConfigMaps.

Using and manipulating sensitive configuration data through Kubernetes Secrets.

Orchestrate persistent stateful applications with advanced and powerful StatefulSets.

Manipulate internal and external endpoints with Kubernetes Endpoints objects.

Learn and use the new Kubernetes EndpointSlices to handle endpoints.

Understand and control access to Kubernetes resources using RBAC Security Authorization.

Learn good practices for day-to-day Kubernetes administration.

Gain confidence to put on your resume that you know Kubernetes!

Description

The Best and Most Complete Online Kubernetes Course for Beginners!

What is Kubernetes?

Kubernetes is the most powerful DevOps technology for managing (orchestration) the entire lifecycle of cloud applications today. Google currently deploys more than 12 billion applications per month based on Kubernetes (Search, YouTube, Gmail, Google Play, Chrome, among others).

Kubernetes is the new phenomenon used in the most advanced technology companies, due to the versatility, security, and performance that Kubernetes offers to deliver new software and updates in record time, as today’s internet demands!

In short, Kubernetes is a technology for orchestrating production-ready containers (official Kubernetes definition).

What is the difference between Kubernetes and GKE (Google), AKS (Azure), EKS (Amazon), ACK (Alibaba)… among others?

The difference is a lot, as GKE, AKS, EKS and ACK are not Kubernetes! Kubernetes is a container orchestration system, it is an independent, open, and free technology that will be taught in this training in its pure and fully reusable form in any environment with Kubernetes installed (locally or in the cloud).

Roughly speaking, GKE, AKS, EKS and ACK are products that use Kubernetes, made available as services by Google, Microsoft, Amazon and Alibaba, to create an environment (cluster) for you to run your Kubernetes applications outside your company, that is, in their cloud, they call it the Managed Kubernetes Platform.

In short, GKE, AKS, EKS and ACK are nothing more than environments to install Kubernetes, they charge for it and offer you other additional services to add to your Kubernetes environment (cluster).

Who owns Kubernetes?

Kubernetes is a project of the Cloud Native Computing Foundation (CNCF). The CNCF is part of the Linux Foundation, a non-profit organization, which is also responsible for the development of Linux (Kernel).

Why should I learn Kubernetes?

You’ll learn Kubernetes to stay ahead in this fabulous market for distributed cloud applications that use containers. Become as big as the giants using powerful Kubernetes!

It is really impressive to know which other organizations (in addition to Google) are using Kubernetes to innovate their systems: NASA, Nubank, Spotify, Adidas, Tinder, Airbnb, Bloomberg Financial Data Analytics and Udemy are just a few examples, that is, leading companies in innovation and market power.

What will I have learned at the end of this training?

You will learn from the basics: what a container orchestrator is, what Kubernetes is, the possibilities of use and much more!

You will be able to manage the entire lifecycle of your application. Furthermore, you will learn how to resolve situations that may occur in the day-to-day life of a Kubernetes administrator, which require professional preparation to resolve problems assertively.

How is the course?

This course uses neurolearning methodology, with teaching techniques for the student to learn up to 70% more of the technology being taught, with less mental effort.

The themes are divided into 3 pillars:


Get Instant Notification of New Courses on our Telegram channel.


  • What is it? (Understand the concept);
  • Why? (Purpose of use);
  • How to make? (Practical implementation).

You will have 20% conceptual content and 80% practical classes!

It’s not just using Kubernetes, but also knowing what’s going on to become a highly valuable professional.

What professional level will I reach with this training. How complete is the course?

The course will provide initial professional training for your entry into the Kubernetes market (Kubernetes Administrator — Entry Level). With the content of this training, you will be prepared to face different situations related to the daily operation of Kubernetes. The course was pedagogically balanced as follows:

  • Basic Topics: the course covers all the basic aspects of Kubernetes;
  • Intermediate Themes: covering common day-to-day operations;
  • Advanced Topics: some topics are covered (only essential advanced issues).

How is the Final Course Project?

The final project consists of using all the knowledge obtained during the training and applying it professionally, through the complete orchestration of a professional system used around the world.

The course will provide you with all the necessary conditions for this challenge, the project will be carried out step by step and well explained by the professor, so that you reach the final objective: orchestrating a professional application, managing the entire software life cycle (implementing the software in production, manage fundamental aspects, and in the final phase remove the application).

Do I need to pay a public cloud (Google, Azure, Amazon, Alibaba, etc.) to take the course?

No! This course uses only FOSS (Free and Open Source Software) technologies. You won’t need to pay anyone a penny to use any of the technologies taught in this training, nor will you need to provide your credit card to any company. It is UNACCEPTABLE that these large companies continue to seek to make money from students.

We will use minikube, which is a system developed by the creators of Kubernetes. Minikube creates a real Kubernetes environment (cluster) complete, with all the necessary features to run everything we need to learn in this training, however, without paying anything! Because minikube is FOSS!

How is minikube?

Minikube is a system specifically created for teaching and learning Kubernetes. Cloud Native Computing Foundation (CNCF) and the Linux Foundation (CNCF partner and Kubernetes certifier) strongly recommend and encourage the use of minikube for learning.

Everything we will study using minikube will run identically wherever Kubernetes is installed, be it a public cloud (Google, Azure, Amazon, Alibaba, etc.), a Raspberry Pi, Virtual Machine or Bare Metal (physical servers), for example.

What do I need to know before taking this course?

Three things:

  1. You need to know Docker, because Docker will not be taught here;
  2. Know the basics of computer networks: TCP/IP, DHCP, DNS, Proxy and Load Balancer;
  3. Basic knowledge of GNU/Linux is recommended.

Does this course prepare me to become a Certified Kubernetes Administrator (CKA)?

It is a mandatory course for those who intend to take the CKA certification exam. Here you will learn the concepts, resources and components that appear on the test. Simulations and additional studies are recommended before taking the test, as this course does not include simulations.

Who is the professor?

Prof. Eng. Arnaldo Sousa, graduated in Software Engineering, IT Management, and Systems Analysis and Development. He was an official instructor and consultant for IBM and Sun Microsystems (creator of Java, now Oracle), and is a licensed teacher with several specializations in the area of education (Teaching, Communication, Neurolearning, Neuropsychology and Special Education).

With extensive experience using and teaching new technologies in large corporations, the professor will introduce you to Kubernetes in an extremely understandable way!

English
language

Content

Getting Started

Overview and Course Goals
Course Wallpapers
Udemy Platform
The Professor
I don’t know Docker, will I be able to understand this course?
Prerequisites
Important!
History of Kubernetes

Setup for Windows Users

antiX Linux, VM for Windows users
Oracle VirtualBox
Downloads for antiX Linux VM
Oracle VirtualBox installation
antiX VM Configuration (OVA file)
antiX Linux Overview
Keyboard and Time Zone configuration on antiX Linux
VirtualBox Shared Folders

Information for GNU/Linux Users

FeatherPad Editor

Kubernetes Setup

Installation and Configuration Commands
Docker Installation
minikube – Local Kubernetes Cluster
Versions of kubectl and minikube used in this course
kubectl Installation
minikube Installation

Fundamentals and Concepts

What is a container orchestrator?
Popular orchestrators (Docker Swarm, Apache Mesos, OpenShift and Kubernetes)
Kubernetes Immutability Concept
Fundamentals
Availability – Part 1 – Declarative Settings
Availability – Part 2 – DevOps Relationship
Scalability – Infrastructure, Services, and DevOps Teams
Infrastructure Abstraction
Infrastructure Abstraction

Components

Control Plane
kube-apiserver
cloud-controller-manager
controller-manager
etcd – Cluster Persistence Storage
kube-proxy
Kubernetes Pods Concept
kube-scheduler
kubelet
Container Runtime Interface (CRI)

YAML

YAML – Introduction
YAML – Overview
YAML – Main Uses: Persistence, Docker Compose and Kubernetes
YAML – Basic Structure
YAML on Kubernetes

Pods

Exercising – Learn by doing!
Creating Pods – Imperative Form
Creating Pods – Manifest Files
Optional Exercise

ReplicaSets

Exercising – Learn by doing!
ReplicaSet Concept and Creation
ReplicaSet Controlling Pods
ReplicaSet Scale – Manifest File
ReplicaSet Scale – Imperative Form

Deployments

Deployments Section Overview
Introduction to Kubernetes Deployments
Exercising – Learn by doing!
Creating the Deployment Resource
Deployment Rollout
Rolling Update Strategy – Deep Analysis
Removing Deployment Resources
Rollout History
Deployment Rollback
Rollout Pause & Rolout Resume
Deployment Scale: YAML & Imperative Form
Recreate Strategy Type

Kubernetes Networking Infrastructure

Container to Container Communication
Intra-Node Pod Network Communication
INTER-Node Pod Network Communication
Exercising – Learn by doing!
Pod Communication Test — Part 1
Pod Communication Test — Part 2

Namespaces

Introduction to Namespaces
Exercising – Learn by doing!
Namespace Creation
Current Context Namespace
Namespaces Manifest Files
Namespace Field Definition

Services

Introduction to Kubernetes Services
Availability of Services
ClusterIP Default Service
ClusterIP – Communication between “port” and “targetPort”
Exercising – Learn by doing!
ClusterIP Service Creation
Consuming ClusterIP Service
ClusterIP Details, and Mass Resource Deletions
NodePort Service
NodePort Services Port Details: Mandatory, Optional , Omitted, Random
NodePort Service Creation
Troubleshooting — NodePort Service Connection Error
External NodePort Service Consumption
Ways to Get Node IP Address
NodePort Service Removal
Introduction to Advanced Services
LoadBalancer Service
LoadBalancer Service – Create, Consume, and Remove
Introduction to ExternalName Services
DNS Resolution for ExternalName Services – Overview
DNS Lookup Services

LivenessProbe

Liveness Probes Section Overview
Introduction to Kubernetes Liveness Probes
Exercising – Learn by doing!
Implementing Liveness Probes and Sanity Logic
Putting Liveness Probes into Action!

Resource Management

Section Overview
Requests
Exercising – Learn by doing!
Requests Implementation
Limits
Requests and Limits: Pods with Multiple Containers

Volumes

Section Overview
Introduction to Kubernetes Volumes
Exercising – Learn by doing!
Creating Ephemeral Volumes – emptyDir
Creating Persistent Volumes – hostPath
PersistentVolume, PersistentVolumeClaim, VolumeClaimTemplates and Storage Class

DaemonSets

DaemonSets Section Overview
Introduction to Kubernetes DaemonSets
Exercising – Learn by doing!
Adding Worker Nodes and Creating DaemonSet Pods
Multi-Mode minikube Troubleshooting Guidance
Troubleshooting: minikube Multi-Nodes
DaemonSet Orphan Pods
Cascade Orphan Pods Option
Adoption of DaemonSet Pods
DaemonSet Pods on Speficic Nodes
DaemonSet Pods on Specific Nodes using Node Labels
DaemonSet Direct Nodes Attribution
Pods using Direct Nodes Attribution
Pods using Node Labels
Rolling Update DaemonSet Update Strategy
OnDelete DaemonSet Update Strategy
Important Notes about DaemonSet Update Strategy

Jobs

Jobs Section Overview
Attention to Job Technical Specifications
Introduction to Kubernetes Jobs
Container Exit Codes
Container Restart Policy
Restart Policy Values
Restart Policy Application
Failed Job Pods
Challenge: Using Jobs to Generate Lucky Numbers
Exercising – Learn by doing!
Creating Jobs for Generating Lucky Numbers
Lucky Numbers Generation Job Analysis

CronJobs

CronJobs Section Overview
Introduction to Kubernetes CronJobs
Basic Structure of Kubernetes CronJob
CronJob API
Kubernetes Cron Schedule Syntax
CronJob Special Strings
Schedule Cron & Crontab Guru
Exercising – Learn by doing!
Creating and Running a Kubernetes CronJobs
Kubernetes CronJobs Events, History Limits & Executions
Identifications: CronJobs > Jobs > Pods

ConfigMap

Overview das Seções ConfigMaps e Secrets
Introduction to Kubernetes ConfigMaps
General ConfigMaps Specifications
Exercising – Learn by doing!
Creating ConfigMap
ConfigMap Mapping – Env Variable
Atualização de ConfigMap – Env Variable
Consuming ConfigMap through Container Command
Creating ConfigMap with ReadOnly Volume
ConfigMap Details with ReadOnly Volume
ConfigMap Update with ReadOnly Volume
ConfigMap File Properties
Parameter File-Based ConfigMaps
Immutable ConfigMaps
Implementing Immutable ConfigMaps

Secrets

Introduction to Kubernetes Secrets
Secrets Consumption – Base64 & Arbitrary Strings
Exercising – Learn by doing!
Creating Secret: data Field and Base64 Operations
Opaque, stringdata Field, immutable
Creating and using Secrets with Env Variable and ReadOnly Volume
Secret Protection Power & Hardening Options

StatefulSets

StatefulSets Section Overview
Introduction to Kubernetes StatefulSets
StatefulSet Features
StatefulSet Structure and Associated Resources
Exercising – Learn by doing!
Kubernetes Headless Service
Creating StatefulSet
Dynamic Volume Provisioning (volumeClaimTemplates)
StatefulSet Scale-UP & Scale Down
StatefulSet Update
Unique Network Identity, Persistence and Service Lookup
PersistentVolume, PersistentVolumeClaim and StorageClass
Removing PersistentVolumeClaim and PersistentVolume
OrderedReady Pod Management Policy
Parallel Pod Management Policy
StatefulSet Limitations

Endpoints

Endpoints Section Overview
Introduction to Kubernetes Endpoints
Exercising – Learn by doing!
Kubernetes Endpoints Resource Creation
Kubernetes Endpoints Resource Usage
Accessing Endpoints External to the Kubernetes Cluster

EndpointSlices

EndpointSlices Section Overview
Endpoint Resource Limitations
EndpointSlice Scalability and Extensibility
EndpointSlice Labels, and Supported Addresses
Exercising – Learn by doing!
Creating EndpointSlice
Multiple EndpointSlice: Implementation and Usage
Automatic EndpointSlice Mirroring

RBAC

RBAC Section Overview
Introduction to RBAC
Access Control Types: Role/RoleBinding & ClusterRole/ClusterRoleBinding
Interaction between RBAC Objects
RBAC Verbs for Roles
Implementation of RBAC Practical Scenario for Auditor Profile
Exercising – Learn by doing!
Generating Key and Security Certificate for RBAC
User and Context Configuration – kubeconfig Credential
Creating Role and RoleBinding objects
Implementing RBAC Authorization
Testing RBAC Accesses

Good Practices for Kubernetes

Good Practices Section Overview
Kubernetes Administration Essentials
Code Reviews & DevOps Teams
Version Controllers and Layer Separation
Organization and Versioning of Manifest Files
Large-Scale and Worldwide Rollout

Final Course Project — Real Professional Orchestration

Final Course Project Section Overview
Final Course Project Overview
Project Application Presentation
Knowing the Application and its Integrations
Orchestration Project Phases
Exercising – Learn by doing!
Project Phase 1: Namespace manifest & Annotations
Project Phase 2: Deployment Manifest
Project Phase 3: Deploying Application
Project Phase 4: Verifying Implementation
Project Phase 5: Testing Application
Project Phase 6: Migrating Application to Service
Project Phase 7: Migrating Application Port
Project Phase 8: Scaling Application
Project Phase 9: Updating Application
Project Phase 10: Final Analysis and Removal of the Application

Course Closing

Course Completion