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
Updating software components to latest stable releases. Fix missing config, minor spelling/grammar/flow fixes.
The main purpose of this update is to make sure the guide still works with the newest version of all software. In running through the guide I found places to make bug fixes and minor improvements.
Copy file name to clipboardexpand all lines: docs/01-prerequisites.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ In this lab you will review the machine requirements necessary to follow this tu
4
4
5
5
## Virtual or Physical Machines
6
6
7
-
This tutorial requires four (4) virtual or physical ARM64 machines running Debian 12 (bookworm). The follow table list the four machines and thier CPU, memory, and storage requirements.
7
+
This tutorial requires four (4) virtual or physical ARM64 machines running Debian 12 (bookworm). The following table list the four machines and thier CPU, memory, and storage requirements.
You maybe surprised to see `aarch64` here, but that is the official name for the Arm Architecture 64-bit instruction set. You will often see `arm64` used by Apple, and the maintainers of the Linux kernel, when referring to support for `aarch64`. This tutorial will use `arm64` consistently throughout to avoid confusion.
Copy file name to clipboardexpand all lines: docs/02-jumpbox.md
+15-21
Original file line number
Diff line number
Diff line change
@@ -49,19 +49,13 @@ pwd
49
49
50
50
In this section you will download the binaries for the various Kubernetes components. The binaries will be stored in the `downloads` directory on the `jumpbox`, which will reduce the amount of internet bandwidth required to complete this tutorial as we avoid downloading the binaries multiple times for each machine in our Kubernetes cluster.
51
51
52
-
From the `kubernetes-the-hard-way` directory create a `downloads` directory using the `mkdir` command:
53
-
54
-
```bash
55
-
mkdir downloads
56
-
```
57
-
58
52
The binaries that will be downloaded are listed in the `downloads.txt` file, which you can review using the `cat` command:
59
53
60
54
```bash
61
55
cat downloads.txt
62
56
```
63
57
64
-
Download the binaries listed in the `downloads.txt` file using the `wget` command:
58
+
Download the binaries listed in the `downloads.txt` file into a directory called `downloads`using the `wget` command:
65
59
66
60
```bash
67
61
wget -q --show-progress \
@@ -78,18 +72,18 @@ ls -loh downloads
78
72
```
79
73
80
74
```text
81
-
total 584M
82
-
-rw-r--r-- 1 root 41M May 9 13:35 cni-plugins-linux-arm64-v1.3.0.tgz
83
-
-rw-r--r-- 1 root 34M Oct 26 15:21 containerd-1.7.8-linux-arm64.tar.gz
84
-
-rw-r--r-- 1 root 22M Aug 14 00:19 crictl-v1.28.0-linux-arm.tar.gz
Copy file name to clipboardexpand all lines: docs/03-compute-resources.md
+11-11
Original file line number
Diff line number
Diff line change
@@ -34,13 +34,13 @@ SSH will be used to configure the machines in the cluster. Verify that you have
34
34
35
35
If `root` SSH access is enabled for each of your machines you can skip this section.
36
36
37
-
By default, a new `debian` install disables SSH access for the `root` user. This is done for security reasons as the `root` user is a well known user on Linux systems, and if a weak password is used on a machine connected to the internet, well, let's just say it's only a matter of time before your machine belongs to someone else. As mention earlier, we are going to enable `root` access over SSH in order to streamline the steps in this tutorial. Security is a tradeoff, and in this case, we are optimizing for convenience. On each machine login via SSH using your user account, then switch to the `root` user using the `su` command:
37
+
By default, a new `debian` install disables SSH access for the `root` user. This is done for security reasons as the `root` user has total administrative control of unix-like systems. If a weak password is used on a machine connected to the internet, well, let's just say it's only a matter of time before your machine belongs to someone else. As mentioned earlier, we are going to enable `root` access over SSH in order to streamline the steps in this tutorial. Security is a tradeoff, and in this case, we are optimizing for convenience. Log on to each machine via SSH using your user account, then switch to the `root` user using the `su` command:
38
38
39
39
```bash
40
40
su - root
41
41
```
42
42
43
-
Edit the `/etc/ssh/sshd_config` SSH daemon configuration file and the `PermitRootLogin` option to `yes`:
43
+
Edit the `/etc/ssh/sshd_config` SSH daemon configuration file and set the `PermitRootLogin` option to `yes`:
44
44
45
45
```bash
46
46
sed -i \
@@ -97,7 +97,7 @@ aarch64 GNU/Linux
97
97
98
98
## Hostnames
99
99
100
-
In this section you will assign hostnames to the `server`, `node-0`, and `node-1` machines. The hostname will be used when executing commands from the `jumpbox` to each machine. The hostname also play a major role within the cluster. Instead of Kubernetes clients using an IP address to issue commands to the Kubernetes API server, those client will use the `server` hostname instead. Hostnames are also used by each worker machine, `node-0` and `node-1` when registering with a given Kubernetes cluster.
100
+
In this section you will assign hostnames to the `server`, `node-0`, and `node-1` machines. The hostname will be used when executing commands from the `jumpbox` to each machine. The hostname also plays a major role within the cluster. Instead of Kubernetes clients using an IP address to issue commands to the Kubernetes API server, those clients will use the `server` hostname instead. Hostnames are also used by each worker machine, `node-0` and `node-1` when registering with a given Kubernetes cluster.
101
101
102
102
To configure the hostname for each machine, run the following commands on the `jumpbox`.
103
103
@@ -125,9 +125,9 @@ node-0.kubernetes.local
125
125
node-1.kubernetes.local
126
126
```
127
127
128
-
## DNS
128
+
## Host Lookup Table
129
129
130
-
In this section you will generate a DNS `hosts` file which will be appended to `jumpbox` local `/etc/hosts` file and to the `/etc/hosts`file of all three machines used for this tutorial. This will allow each machine to be reachable using a hostname such as `server`, `node-0`, or `node-1`.
130
+
In this section you will generate a `hosts` file which will be appended to `/etc/hosts` file on `jumpbox`and to the `/etc/hosts`files on all three cluster members used for this tutorial. This will allow each machine to be reachable using a hostname such as `server`, `node-0`, or `node-1`.
131
131
132
132
Create a new `hosts` file and add a header to identify the machines being added:
133
133
@@ -136,7 +136,7 @@ echo "" > hosts
136
136
echo"# Kubernetes The Hard Way">> hosts
137
137
```
138
138
139
-
Generate a DNS entry for each machine in the `machines.txt` file and append it to the `hosts` file:
139
+
Generate a host entry for each machine in the `machines.txt` file and append it to the `hosts` file:
140
140
141
141
```bash
142
142
whileread IP FQDN HOST SUBNET;do
@@ -145,7 +145,7 @@ while read IP FQDN HOST SUBNET; do
In this section you will append the DNS entries from the `hosts` file to the local `/etc/hosts` file on your `jumpbox` machine.
165
165
@@ -206,9 +206,9 @@ node-0 aarch64 GNU/Linux
206
206
node-1 aarch64 GNU/Linux
207
207
```
208
208
209
-
## Adding DNS Entries To The Remote Machines
209
+
## Adding `/etc/hosts` Entries To The Remote Machines
210
210
211
-
In this section you will append the DNS entries from `hosts` to `/etc/hosts` on each machine listed in the `machines.txt` text file.
211
+
In this section you will append the host entries from `hosts` to `/etc/hosts` on each machine listed in the `machines.txt` text file.
212
212
213
213
Copy the `hosts` file to each machine and append the contents to `/etc/hosts`:
214
214
@@ -220,6 +220,6 @@ while read IP FQDN HOST SUBNET; do
220
220
done< machines.txt
221
221
```
222
222
223
-
At this point hostnames can be used when connecting to machines from your `jumpbox` machine, or any of the three machines in the Kubernetes cluster. Instead of using IP addresess you can now connect to machines using a hostname such as `server`, `node-0`, or `node-1`.
223
+
At this point hostnames can be used when connecting to machines from your `jumpbox` machine, or any of the three machines in the Kubernetes cluster. Instead of using IP addresses you can now connect to machines using a hostname such as `server`, `node-0`, or `node-1`.
224
224
225
225
Next: [Provisioning a CA and Generating TLS Certificates](04-certificate-authority.md)
Copy file name to clipboardexpand all lines: docs/04-certificate-authority.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ cat ca.conf
14
14
15
15
You don't need to understand everything in the `ca.conf` file to complete this tutorial, but you should consider it a starting point for learning `openssl` and the configuration that goes into managing certificates at a high level.
16
16
17
-
Every certificate authority starts with a private key and root certificate. In this section we are going to create a self-signed certificate authority, and while that's all we need for this tutorial, this shouldn't be considered something you would do in a real-world production level environment.
17
+
Every certificate authority starts with a private key and root certificate. In this section we are going to create a self-signed certificate authority, and while that's all we need for this tutorial, this shouldn't be considered something you would do in a real-world production environment.
18
18
19
19
Generate the CA configuration file, certificate, and private key:
20
20
@@ -75,7 +75,7 @@ ls -1 *.crt *.key *.csr
75
75
76
76
## Distribute the Client and Server Certificates
77
77
78
-
In this section you will copy the various certificates to each machine under a directory that each Kubernetes components will search for the certificate pair. In a real-world environment these certificates should be treated like a set of sensitive secrets as they are often used as credentials by the Kubernetes components to authenticate to each other.
78
+
In this section you will copy the various certificates to every machine at a path where each Kubernetes component will search for its certificate pair. In a real-world environment these certificates should be treated like a set of sensitive secrets as they are used as credentials by the Kubernetes components to authenticate to each other.
79
79
80
80
Copy the appropriate certificates and private keys to the `node-0` and `node-1` machines:
Copy file name to clipboardexpand all lines: docs/05-kubernetes-configuration-files.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Generating Kubernetes Configuration Files for Authentication
2
2
3
-
In this lab you will generate [Kubernetes configuration files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/), also known as kubeconfigs, which enable Kubernetes clients to locate and authenticate to the Kubernetes API Servers.
3
+
In this lab you will generate [Kubernetes client configuration files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/), typically called kubeconfigs, which configure Kubernetes clients to connect and authenticate to Kubernetes API Servers.
4
4
5
5
## Client Authentication Configs
6
6
@@ -12,7 +12,7 @@ When generating kubeconfig files for Kubelets the client certificate matching th
12
12
13
13
> The following commands must be run in the same directory used to generate the SSL certificates during the [Generating TLS Certificates](04-certificate-authority.md) lab.
14
14
15
-
Generate a kubeconfig file the node-0 worker node:
15
+
Generate a kubeconfig file for the node-0 worker node:
Copy file name to clipboardexpand all lines: docs/08-bootstrapping-kubernetes-controllers.md
+7-7
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Bootstrapping the Kubernetes Control Plane
2
2
3
-
In this lab you will bootstrap the Kubernetes control plane. The following components will be installed the controller machine: Kubernetes API Server, Scheduler, and Controller Manager.
3
+
In this lab you will bootstrap the Kubernetes control plane. The following components will be installed on the controller machine: Kubernetes API Server, Scheduler, and Controller Manager.
4
4
5
5
## Prerequisites
6
6
7
-
Copy Kubernetes binaries and systemd unit files to the `server` instance:
7
+
Connect to the `jumpbox` and copy Kubernetes binaries and systemd unit files to the `server` instance:
0 commit comments