Skip to content

Commit 4c94577

Browse files
authored
Merge pull request #691 from Namanv0509/intro-k8s
Adding intro to k8s workshop
2 parents 4b64523 + 20d1d24 commit 4c94577

File tree

109 files changed

+3213
-1062
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+3213
-1062
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
docType: "Course"
3+
title: "Concepts"
4+
description: "Kubernetes Basic Concepts"
5+
lectures: 1
6+
courseTitle: "Concepts"
7+
themeColor: "#00B39F"
8+
weight: 1
9+
order: 1
10+
cardImage: ""
11+
---
12+
13+
{{< chapterstyle >}}
14+
15+
16+
## History
17+
18+
Kubernetes also called *k8s* (a "k" followed by 8 chars and a "s") or simply *kube* means "Helmsman" in Greek. It is a container orchestrator inspired by Google Borg System which were orchestrating billions of containers on Google infrastructure.
19+
20+
Version *v1.0.0* of Kubernetes was released in July 2015, the last version as of today (October 2024) is *v1.31.1*. The release cycle is quite fast with 3 minor releases per year.
21+
22+
## Main functionalities
23+
24+
Kubernetes is a container orchestrator offering main functionalities, such as:
25+
26+
- Management of applications running in containers
27+
- Self-healing
28+
- Service discovery
29+
- Usage of Secrets and Configurations
30+
- Long-running process and batch jobs
31+
- Role Based Access Control (RBAC)
32+
- Storage Orchestration
33+
34+
## Manages applications in production
35+
36+
{{< image src="/images/learning-path/intro-kubernetes/concepts/environments.png" align="center" width="100%" alt="environments" >}}
37+
38+
## Major project in the open-source ecosystem
39+
40+
Kubernetes is the first graduated project within the [CNCF](https://cncf.io/projects), it was followed by major players like [etcd](https://etcd.io) and [Prometheus](https://prometheus.io/)
41+
42+
{{< image src="/images/learning-path/intro-kubernetes/concepts/cncf.png" align="center" width="100%" alt="CNCF" >}}
43+
44+
## What is a Kubernetes cluster made of ?
45+
46+
A Kubernetes cluster is composed of nodes, where a node is either a virtual machine or a bare metal server. A node can belong to the Control Plane which run processes in charge of managing the cluster and the applications running on it. Or, a node can be a Worker dedicated to run Pods, a group of containers sharing a network stack and storage.
47+
48+
{{< image src="/images/learning-path/intro-kubernetes/concepts/cluster.png" align="center" width="100%" alt="cluster" >}}
49+
50+
## How to access a cluster
51+
52+
A cluster usually comes with a kubeconfig file which contains all the information to communicate with the cluster API Server. This file can be used to configure the standard *kubectl* binary to manage the cluster. The kubeconfig file can also be used with tools like [k9s](https://k9scli.io/), [Mirantis Lens](https://k8slens.dev/), ... which give a higher level view of the cluster.
53+
54+
{{< image src="/images/learning-path/intro-kubernetes/concepts/access.png" align="center" width="100%" alt="access" >}}
55+
56+
## Various workload resources for different use cases
57+
58+
To run a Pod we often rely on a higher level resource, instead of running it directly. The workload resources are:
59+
60+
- Deployment : web server
61+
- DaemonSet : one agent per node
62+
- Job / CronJob : batch
63+
- StatefulSet : stateful application
64+
65+
{{< image src="/images/learning-path/intro-kubernetes/concepts/workloads.png" align="center" width="100%" alt="workload resources" >}}
66+
67+
A request that reaches a Service is load-balanced between the exposed Pods
68+
69+
{{< image src="/images/learning-path/intro-kubernetes/concepts/service.png" align="center" width="100%" alt="service" >}}
70+
71+
72+
A Pod can use several resources
73+
74+
- ConfigMap : contains configuration data
75+
- Secret : contains sensitive data
76+
- PersistentVolumeClaim / PersistentVolume : storage management
77+
78+
{{< image src="/images/learning-path/intro-kubernetes/concepts/pod-resources.png" align="center" width="100%" alt="pod resources" >}}
79+
80+
81+
## Several types of resources
82+
83+
{{< image src="/images/learning-path/intro-kubernetes/concepts/summary.png" align="center" width="100%" alt="Summary" >}}
84+
85+
## An application runs in a Namespace
86+
87+
88+
{{< image src="/images/learning-path/intro-kubernetes/concepts/namespace.png" align="center" width="100%" alt="Namespace" >}}
89+
90+
## Resource creation
91+
92+
Each resource is defined in a YAML specification which is sent to the API Server using the kubectl binary.
93+
94+
```yaml
95+
apiVersion: v1
96+
kind: Pod
97+
metadata:
98+
name: www
99+
spec:
100+
containers:
101+
- name: www
102+
image: nginx:1.24
103+
```
104+
105+
```bash
106+
kubectl apply -f www.yaml
107+
```
108+
109+
110+
111+
{{< /chapterstyle >}}

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/_index.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/build-and-run.md

Lines changed: 0 additions & 39 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/container-benefits.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/containers.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/dependencies.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/docker-hub.md

Lines changed: 0 additions & 36 deletions
This file was deleted.

content/en/learning-paths/mastering-kubernetes-for-engineers/introduction/containers/content/docker-kubernetes.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)