Cloud Native Kubernetes
- Description
- Curriculum
- FAQ
- Notice
- Reviews

Harness Kubernetes’ extensibility to deploy modern patterns and learn to effectively handle production issues
Key Features
- Build and run efficient cloud-native applications on Kubernetes using industry best practices
- Operate Kubernetes in a production environment, troubleshoot clusters, and address security concerns
- Deploy cutting-edge Kubernetes patterns such as service mesh and serverless to your cluster
Description
Kubernetes is a modern cloud native container orchestration tool and one of the most popular open source projects worldwide. In addition to the technology being powerful and highly flexible, Kubernetes engineers are in high demand across the industry.
This course is a comprehensive guide to deploying, securing, and operating modern cloud native applications on Kubernetes. From the fundamentals to Kubernetes best practices, this training covers essential aspects of configuring applications. You’ll even explore real-world techniques for running clusters in production, tips for setting up observability for cluster resources, and valuable troubleshooting techniques. Finally, you’ll learn how to extend and customize Kubernetes, as well as gaining tips for deploying service meshes, serverless tooling, and more on your cluster.
By the end of this Kubernetes course, you’ll be equipped with the tools you need to confidently run and extend modern applications on Kubernetes.
What you will learn
- Set up Kubernetes and configure its authentication
- Deploy your applications to Kubernetes
- Configure and provide storage to Kubernetes applications
- Expose Kubernetes applications outside the cluster
- Control where and how applications are run on Kubernetes
- Set up observability for Kubernetes
- Build a continuous integration and continuous deployment (CI/CD) pipeline for Kubernetes
- Extend Kubernetes with service meshes, serverless, and more
Intended Audience
This Learning Path is intended specifically for Docker and Kubernetes application developers. Anyone interested in learning how to work with Kubernetes will also benefit from this Learning Path.
Prerequisites
A solid understanding of containers, and Docker in particular, will be of value. If you are not comfortable with Docker and Kubernetes , you are encouraged to complete the Docker and Kubernetes Learning Path.This Learning path helps you to learn from fundamentals to advanced Docker and Kubernetes running on Linux machines. You should be comfortable working with basic Linux commands.
Additional Documentation
-
1Technical requirements
-
2Introducing container orchestration
-
3What is container orchestration?
-
4Benefits of container orchestration
-
5Popular orchestration tools
-
6Kubernetes' architecture
-
7Kubernetes node types
-
8The Kubernetes control plane
-
9The Kubernetes API server
-
10The Kubernetes scheduler
-
11The Kubernetes controller manager
-
12etcd
-
13The Kubernetes worker nodes
-
14kubelet
-
15kube-proxy
-
16The container runtime
-
17Addons
-
18Authentication and authorization on Kubernetes
-
19Namespaces
-
20Users
-
21Authentication methods
-
22Kubernetes' certificate infrastructure for TLS and security
-
23Authorization options
-
24RBAC
-
25ABAC
-
26Using kubectl and YAML
-
27Setting up kubectl and kubeconfig
-
28Imperative versus declarative commands
-
29Writing Kubernetes resource YAML files
-
30Technical requirements
-
31Options for creating a cluster
-
32minikube – an easy way to start
-
33Installing minikube
-
34Creating a cluster on minikube
-
35Managed Kubernetes services
-
36Benefits of managed Kubernetes services
-
37Drawbacks of managed Kubernetes services
-
38AWS – Elastic Kubernetes Service
-
39Getting started
-
40Google Cloud – Google Kubernetes Engine
-
41Getting started
-
42Microsoft Azure – Azure Kubernetes Service
-
43Getting started
-
44Programmatic cluster creation tools
-
45Kubeadm
-
46Kops
-
47Creating a cluster with Kubeadm
-
48Installing Kubeadm
-
49Starting the master nodes
-
50Starting the worker nodes
-
51Setting up kubectl
-
52Creating a cluster with Kops
-
53Installing on macOS
-
54Installing on Linux
-
55Installing on Windows
-
56Setting up credentials for Kops
-
57Setting up state storage
-
58Creating clusters
-
59Creating a cluster completely from scratch
-
60Provisioning your nodes
-
61Creating the Kubernetes certificate authority for TLS
-
62Creating config files
-
63Creating an etcd cluster and configuring encryption
-
64Bootstrapping the control plane component
-
65Bootstrapping the worker node
-
75Technical requirements
-
76Understanding Pod drawbacks and their solutions
-
77Pod controllers
-
78Using ReplicaSets
-
79Replicas
-
80Selector
-
81Template
-
82Testing a ReplicaSet
-
83Controlling Deployments
-
84Controlling Deployments with imperative commands
-
85Harnessing the Horizontal Pod Autoscaler
-
86Implementing DaemonSets
-
87Understanding StatefulSets
-
88Using Jobs
-
89CronJobs
-
90Putting it all together
-
102Technical requirements
-
103Configuring containerized applications using best practices
-
104Understanding ConfigMaps
-
105Understanding Secrets
-
106Implementing ConfigMaps
-
107From text values
-
108From files
-
109From environment files
-
110Mounting a ConfigMap as a volume
-
111Mounting a ConfigMap as an environment variable
-
112Using Secrets
-
113Manual declarative approach
-
114Mounting a Secret as a volume
-
115Mounting a Secret as an environment variable
-
116Implementing encrypted Secrets
-
117Checking whether your Secrets are encrypted
-
118Disabling cluster encryption
-
119Technical requirements
-
120Understanding the difference between volumes and persistent volumes
-
121Volumes
-
122Persistent volumes
-
123Persistent volume claims
-
124Attaching Persistent Volume Claims (PVCs) to Pods
-
125Persistent volumes without cloud storage
-
126Installing Rook
-
127The rook-ceph-block storage class
-
128The Rook Ceph filesystem
-
129Technical requirements
-
130Identifying use cases for Pod placement
-
131Kubernetes node health placement controls
-
132Applications requiring different node types
-
133Applications requiring specific data compliance
-
134Multi-tenant clusters
-
135Multiple failure domains
-
136Using node selectors and node name
-
137Implementing taints and tolerations
-
138Multiple taints and tolerations
-
139Controlling Pods with node affinity
-
140Using requiredDuringSchedulingIgnoredDuringExecution node affinities
-
141Using preferredDuringSchedulingIgnoredDuringExecution node affinities
-
142Multiple node affinities
-
143Using inter-Pod affinity and anti-affinity
-
144Pod affinities
-
145Pod anti-affinities
-
146Combined affinity and anti-affinity
-
147Pod affinity and anti-affinity limitations
-
148Pod affinity and anti-affinity namespaces
-
149Technical requirements
-
150Understanding observability on Kubernetes
-
151Understanding what matters for Kubernetes cluster and application health
-
152Using default observability tooling
-
153Metrics on Kubernetes
-
154Logging on Kubernetes
-
155Installing Kubernetes Dashboard
-
156Alerts and traces on Kubernetes
-
157Enhancing Kubernetes observability using the best of the ecosystem
-
158Introducing Prometheus and Grafana
-
159Implementing the EFK stack on Kubernetes
-
160Implementing distributed tracing with Jaeger
-
161Third-party tooling
-
162Technical requirements
-
163Understanding failure modes for distributed applications
-
164The network is reliable
-
165Latency is zero
-
166Bandwidth is infinite
-
167The network is secure
-
168The topology doesn't change
-
169There is only one administrator
-
170Transport cost is zero
-
171The network is homogeneous
-
172Troubleshooting Kubernetes clusters
-
173Case study – Kubernetes Pod placement failure
-
174Troubleshooting applications on Kubernetes
-
175Case study 1 – Service not responding
-
176Case study 2 – Incorrect Pod startup command
-
177Case study 3 – Pod application malfunction with logs
-
178Technical requirements
-
179Understanding options for template code generation on Kubernetes
-
180Helm
-
181Kustomize
-
182Implementing templates on Kubernetes with Helm and Kustomize
-
183Using Helm with Kubernetes
-
184Using Kustomize with Kubernetes
-
185Understanding CI/CD paradigms on Kubernetes – in-cluster and out-of-cluster
-
186Out-of-cluster CI/CD
-
187In-cluster CI/CD
-
188Implementing in-cluster and out-of-cluster CI/CD with Kubernetes
-
189Implementing Kubernetes CI with AWS Codebuild
-
190Implementing Kubernetes CI with FluxCD
-
191Technical requirements
-
192Understanding security on Kubernetes
-
193Reviewing CVEs and security audits for Kubernetes
-
194Understanding CVE-2016-1905 – Improper admission control
-
195Understanding CVE-2018-1002105 – Connection upgrading to the backend
-
196Understanding the 2019 security audit results
-
197Implementing tools for cluster configuration and container security
-
198Using admission controllers
-
199Enabling Pod security policies
-
200Using network policies
-
201Handling intrusion detection, runtime security, and compliance on Kubernetes
-
202Installing Falco
-
203Understanding Falco's capabilities
-
204Mapping Falco to compliance and runtime security use cases
-
205Technical requirements
-
206How to extend Kubernetes with custom resource definitions
-
207Writing a custom resource definition
-
208Self-managing functionality with Kubernetes operators
-
209Mapping the operator control loop
-
210Designing an operator for a custom resource definition
-
211Using cloud-specific Kubernetes extensions
-
212Understanding the cloud-controller-manager component
-
213Installing cloud-controller-manager
-
214Understanding the cloud-controller-manager capabilities
-
215Using external-dns with Kubernetes
-
216Using the cluster-autoscaler add-on
-
217Integrating with the ecosystem
-
218Introducing the Cloud Native Computing Foundation
-
219Technical requirements
-
220Using sidecar proxies
-
221Using NGINX as a sidecar reverse proxy
-
222Using Envoy as a sidecar proxy
-
223Adding a service mesh to Kubernetes
-
224Setting up Istio on Kubernetes
-
225Implementing serverless on Kubernetes
-
226Using Knative for FaaS on Kubernetes
-
227Using OpenFaaS for FaaS on Kubernetes
-
228Technical requirements
-
229Understanding stateful applications on Kubernetes
-
230Popular Kubernetes-native stateful applications
-
231Understanding strategies for running stateful applications on Kubernetes.
-
232Deploying object storage on Kubernetes
-
233Installing the Minio Operator
-
234Installing Krew and the Minio kubectl plugin
-
235Starting the Minio Operator
-
236Creating a Minio tenant
-
237Accessing the Minio console
-
238Running DBs on Kubernetes
-
239Running CockroachDB on Kubernetes
-
240Testing CockroachDB with SQL
-
241Implementing messaging and queues on Kubernetes
-
242Deploying RabbitMQ on Kubernetes
Coming Soon