You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/01-Introduction/01-Course-Introduction.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ The objectives of this course are aligned to match the **`Certified Kubernetes A
60
60
- Network Policies
61
61
- TLS Certificates for Cluster Components
62
62
- Image Security
63
-
- Network Polices
63
+
- Network Policies
64
64
- Security Contexts
65
65
- Secure Persistent Key Value Store
66
66
- Storage
@@ -101,6 +101,6 @@ The objectives of this course are aligned to match the **`Certified Kubernetes A
101
101
102
102
CKA exam is a practical hands-on exam it is very important to practice what you learn. Which is why we build a custom solution that will give you access to a **`Real Kubernetes Environment`** right in your browser along with **`Quiz Portal`**
103
103
104
-
## Kubernetes the hardway
104
+
## Kubernetes the hard way
105
105
106
-
- Take me to [Kubernetes The Hardway on VirtualBox](https://github.com/mmumshad/kubernetes-the-hard-way)
106
+
- Take me to [Kubernetes The Hard way on VirtualBox](https://github.com/mmumshad/kubernetes-the-hard-way)
Copy file name to clipboardexpand all lines: docs/02-Core-Concepts/03-Docker-vs-ContainerD.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
In this section we will look at the differences between Docker and ContainerD
4
4
5
5
6
-
So you’re going to come across Docker and `containerd` many times. Going forward, when you read older blogs or documentation pages , you’ll see Docker mentioned along with Kubernetes and when you read newer blogs you’ll see `containerd` and you’ll wonder what the difference is between the two. And there are a few CLI tools like `ctr`, `crictl` or `nerdctl` and you’ll wonder what are these CLI tools and which one should you be using, so that’s’ what I’m going to explain.
6
+
So you’re going to come across Docker and `containerd` many times. Going forward, when you read older blogs or documentation pages , you’ll see Docker mentioned along with Kubernetes and when you read newer blogs you’ll see `containerd` and you’ll wonder what the difference is between the two. And there are a few CLI tools like `ctr`, `crictl` or `nerdctl` and you’ll wonder what are these CLI tools and which one should you be using, so that’s what I’m going to explain.
7
7
8
8

9
9
@@ -24,11 +24,11 @@ So while most other container runtimes worked to the CRI, Docker continued to wo
24
24
25
25

26
26
27
-
So now you have containerd as a separate runtime and Docker separately, so Kubernetes continued to maintain support for Docker engine directly however having to maintain the dockershim was an unnecessary effort and added complications so it was decided in v1.24 release of Kubernetes to remove dockershim completely and so support for Docker was removed. But you see all the images that were built before Docker was removed so all the Docker images continued to work because Docker followed the image spec from the OCI standards so all the images built by Docker follow the standard so they continued to work with containerd but Docker itself was removed as a supported runtime form Kubernetes. So that’s kind of the whole story, now let’s look into containerd more specifically.
27
+
So now you have containerd as a separate runtime and Docker separately, so Kubernetes continued to maintain support for Docker engine directly however having to maintain the dockershim was an unnecessary effort and added complications so it was decided in v1.24 release of Kubernetes to remove dockershim completely and so support for Docker was removed. But you see all the images that were built before Docker was removed so all the Docker images continued to work because Docker followed the image spec from the OCI standards so all the images built by Docker follow the standard so they continued to work with containerd but Docker itself was removed as a supported runtime from Kubernetes. So that’s kind of the whole story, now let’s look into containerd more specifically.
28
28
29
29

30
30
31
-
So containerd although is part of Docker, is a separate project on its own now and is a member of [CNCF](https://www.cncf.io/) with the [graduated](https://www.cncf.io/projects/) status, so you can now install containerd on its own without having to install Docker itself so if you don’t really need Docker’s other features you could ideally just install containerd alone. So typically we ran containers using the `docker run` command when we had Docker and if Docker isn’t installed then how do you run containers with just containerd? Now, once you install containerd it comes with a command line tool called [ctr](https://github.com/projectatomic/containerd/blob/master/docs/cli.md#client-cli), and this tool is solely made for debugging containerd and is not very user friendly as it only supports a limited set of features and this is all you can see in the documentation pages for this particular tool. So for the other than limited set of features that require any other way you want to interact with containerd you have to rely on making API calls directly which is not the most user friendly way to for us to operate.
31
+
So containerd although is part of Docker, is a separate project on its own now and is a member of [CNCF](https://www.cncf.io/) with the [graduated](https://www.cncf.io/projects/) status, so you can now install containerd on its own without having to install Docker itself so if you don’t really need Docker’s other features you could ideally just install containerd alone. So typically we ran containers using the `docker run` command when we had Docker and if Docker isn’t installed then how do you run containers with just containerd? Now, once you install containerd it comes with a command line tool called [ctr](https://github.com/projectatomic/containerd/blob/master/docs/cli.md#client-cli), and this tool is solely made for debugging containerd and is not very user friendly as it only supports a limited set of features and this is all you can see in the documentation pages for this particular tool. So for the other than limited set of features that require any other way you want to interact with containerd you have to rely on making API calls directly which is not the most user friendly way for us to operate.
32
32
33
33
So just to give you an idea, the `ctr` command can be used to perform basic container-related activities such as pull images, for example to pull redis image you would run
34
34
@@ -47,7 +47,7 @@ So a better alternative recommended is the [nerdctl](https://github.com/containe
47
47
48
48

49
49
50
-
So that’s pretty easy and straight forward so now that we have talked about `ctr` and the `nerdctl` tool, it’s important to talk about another command like tool known as [crictl](https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md#container-runtime-interface-cri-cli). So earlier we talked about the CRI which is a single interface used to connect CRI compatible container runtimes, containerd, `rkt` and others. So the `crictl` is a command line utility that is used to interact with the CRI compatible container runtime, so this is kind of interaction from the Kubernetes perspective. So this tool is developed and maintained by the Kubernetes community and this tool works across all the different container runtimes and because earlier you had the `ctr` and `nerdctl` utility that was built by the containerd community specifically for containerd, but this particular tool is from the Kubernetes perspective that works across different container runtimes.
50
+
So that’s pretty easy and straightforward so now that we have talked about `ctr` and the `nerdctl` tool, it’s important to talk about another command like tool known as [crictl](https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md#container-runtime-interface-cri-cli). So earlier we talked about the CRI which is a single interface used to connect CRI compatible container runtimes, containerd, `rkt` and others. So the `crictl` is a command line utility that is used to interact with the CRI compatible container runtime, so this is kind of interaction from the Kubernetes perspective. So this tool is developed and maintained by the Kubernetes community and this tool works across all the different container runtimes and because earlier you had the `ctr` and `nerdctl` utility that was built by the containerd community specifically for containerd, but this particular tool is from the Kubernetes perspective that works across different container runtimes.
51
51
52
52
So it must be installed separately and is used to inspect and debug container runtimes so this again is not ideally used to create containers unlike the Docker or the `nerdctl` utility but is again a debugging tool. You can technically create containers with the `crictl` utility but it’s not easy. It’s only to be used for some special debugging purposes. And remember that it kind of works along with the kubelet so we know that the kubelet is responsible for ensuring that a specific number of containers or pods are available on a node at time, so if you kind of go through the `crictl` utility and try and create containers with it, then eventually kubelet is going to delete them because kubelet is unaware of some of those containers or pods that are created outside of its knowledge so anything that it sees it’s going to go and delete it, so because of those things remember that the `crictl` utility is only used for debugging purposes and getting into containers and all of that.
-Its easy to install and get started with **`ETCD`**.
23
+
-It's easy to install and get started with **`ETCD`**.
24
24
- Download the relevant binary for your operating system from github releases page (https://github.com/etcd-io/etcd/releases)
25
25
26
26
For Example: To download ETCD v3.5.6, run the below curl command
@@ -36,7 +36,7 @@
36
36
```
37
37
$ ./etcd
38
38
```
39
-
- When you start **`ETCD`** it will by default listens on port **`2379`**
39
+
- When you start **`ETCD`** it will by default listen on port **`2379`**
40
40
- The default client that comes with **`ETCD`** is the [**`etcdctl`**](https://github.com/etcd-io/etcd/tree/main/etcdctl) client. You can use it to store and retrieve key-value pairs.
Copy file name to clipboardexpand all lines: docs/08-Storage/06-Volumes.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ In this section, we will take a look at **Volumes**
17
17
18
18
## Volume Storage Options
19
19
20
-
- In the volumes, hostPath volume type is fine with the single node. It's not recomended for use with the multi node cluster.
20
+
- In the volumes, hostPath volume type is fine with the single node. It's not recommended for use with the multi node cluster.
21
21
- In the Kubernetes, it supports several types of standard storage solutions such as NFS, GlusterFS, CephFS or public cloud solutions like AWS EBS, Azure Disk or Google's Persistent Disk.
0 commit comments