Skip to content

Commit

Permalink
Editing kubernets labs (#2622)
Browse files Browse the repository at this point in the history
- Edit `00-README.md`
  - Fix HTML element inclusion issue
    + add an actual image to an images folder in the parent directory
    + fix the inline-HTML error, with markdown formatted link
  - fix links to other documents in README
  - add front matter and create title: Introduction
- Edit `01-prerequisites.md` auto formatting only
- Edit `02-jumpbox.md`
- Edit `03-compute-resources.md`
  + add markdown ENTER command
- replace we with you in most cases
- replace passive voice with active
- replace contractions with words
- some minor sentence rewording and simplification

- add a title: Introduction, rather than having the 00-README show up
  • Loading branch information
sspencerwire authored Mar 5, 2025
1 parent d9e4b0b commit c4e350c
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 54 deletions.
47 changes: 26 additions & 21 deletions docs/labs/kubernetes-the-hard-way/00-README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
---
title: Introduction
author: Wale Soyinka
contributors: Steven Spencer
---

This is a fork of the original ["Kubernetes the hard way"](https://github.com/kelseyhightower/kubernetes-the-hard-way) originally written by Kelsey Hightower.
. Unlike the original that is based on Debian like distros for the ARM64 architecture, this fork is targetted at Enterprise Linux distributions such as Rocky Linux running on x86_64 architecture.

This is a fork of the original ["Kubernetes the hard way"](https://github.com/kelseyhightower/kubernetes-the-hard-way) originally written by Kelsey Hightower (GitHub: kelseyhightower).
Unlike the original that bases itself on Debian like distributions for the ARM64 architecture, this fork targets Enterprise Linux distributions such as Rocky Linux running on x86_64 architecture.

# Kubernetes The Hard Way

This tutorial walks you through setting up Kubernetes the hard way. This guide is not for someone looking for a fully automated tool to bring up a Kubernetes cluster. Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.
This tutorial walks you through setting up Kubernetes the hard way. This guide is not for someone looking for a fully automated tool to bring up a Kubernetes cluster. Kubernetes The Hard Way, designed for learning, means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.

> The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don't let that stop you from learning!
Do not view the results of this tutorial as production ready, and it might not receive support from the community, but do not let that stop you from learning!

## Copyright

<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
![Creative Commons License](images/cc_by_sa.png)

Licensing of this work is under a [Creative Commons Attribution-NonCommercial-=ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/).

## Target Audience

Expand All @@ -31,18 +36,18 @@ Component versions:

## Labs

This tutorial requires four (4) x86_64 based virtual or physical machines connected to the same network. While x86_64 based machines are used for the tutorial, the lessons learned can be applied to other platforms.

* [Prerequisites](docs/01-prerequisites.md)
* [Setting up the Jumpbox](docs/02-jumpbox.md)
* [Provisioning Compute Resources](docs/03-compute-resources.md)
* [Provisioning the CA and Generating TLS Certificates](docs/04-certificate-authority.md)
* [Generating Kubernetes Configuration Files for Authentication](docs/05-kubernetes-configuration-files.md)
* [Generating the Data Encryption Config and Key](docs/06-data-encryption-keys.md)
* [Bootstrapping the etcd Cluster](docs/07-bootstrapping-etcd.md)
* [Bootstrapping the Kubernetes Control Plane](docs/08-bootstrapping-kubernetes-controllers.md)
* [Bootstrapping the Kubernetes Worker Nodes](docs/09-bootstrapping-kubernetes-workers.md)
* [Configuring kubectl for Remote Access](docs/10-configuring-kubectl.md)
* [Provisioning Pod Network Routes](docs/11-pod-network-routes.md)
* [Smoke Test](docs/12-smoke-test.md)
* [Cleaning Up](docs/13-cleanup.md)
This tutorial requires four (4) x86_64 based virtual or physical machines connected to the same network. While the tutorial uses x86_64 based machines, you can apply the lessons learned to other platforms.

* [Prerequisites](01-prerequisites.md)
* [Setting up the Jumpbox](02-jumpbox.md)
* [Provisioning Compute Resources](03-compute-resources.md)
* [Provisioning the CA and Generating TLS Certificates](04-certificate-authority.md)
* [Generating Kubernetes Configuration Files for Authentication](05-kubernetes-configuration-files.md)
* [Generating the Data Encryption Config and Key](06-data-encryption-keys.md)
* [Bootstrapping the etcd Cluster](07-bootstrapping-etcd.md)
* [Bootstrapping the Kubernetes Control Plane](08-bootstrapping-kubernetes-controllers.md)
* [Bootstrapping the Kubernetes Worker Nodes](09-bootstrapping-kubernetes-workers.md)
* [Configuring kubectl for Remote Access](10-configuring-kubectl.md)
* [Provisioning Pod Network Routes](11-pod-network-routes.md)
* [Smoke Test](12-smoke-test.md)
* [Cleaning Up](13-cleanup.md)
4 changes: 2 additions & 2 deletions docs/labs/kubernetes-the-hard-way/01-prerequisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ This tutorial requires four (4) virtual or physical x86_64 machines running Debi
| node-0 | Kubernetes worker node | 1 | 2GB | 20GB |
| node-1 | Kubernetes worker node | 1 | 2GB | 20GB |

How you provision the machines is up to you, the only requirement is that each machine meet the above system requirements including the machine specs and OS version. Once you have all four machine provisioned, verify the system requirements by running the `uname` command on each machine:
How you provision the machines is up to you, the only requirement is that each machine meet the above system requirements including the machine specs and operating system version. Once you have all four machine provisioned, verify the system requirements by running the `uname` command on each machine:

```bash
```bash
uname -mov
```

Expand Down
31 changes: 15 additions & 16 deletions docs/labs/kubernetes-the-hard-way/02-jumpbox.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# Set Up The Jumpbox

In this lab you will set up one of the four machines to be a `jumpbox`. This machine will be used to run commands in this tutorial. While a dedicated machine is being used to ensure consistency, these commands can also be run from just about any machine including your personal workstation running macOS or Linux.
In this lab you will set up one of the four machines to be a `jumpbox`. You will use this machine to run commands in this tutorial. While the use of a dedicated machine is to ensure consistency, you can run these commands from just about any machine, including your personal workstation running macOS or Linux.

Think of the `jumpbox` as the administration machine that you will use as a home base when setting up your Kubernetes cluster from the ground up. One thing we need to do before we get started is install a few command line utilities and clone the Kubernetes The Hard Way git repository, which contains some additional configuration files that will be used to configure various Kubernetes components throughout this tutorial.
Think of the `jumpbox` as the administration machine that you will use as a home base when setting up your Kubernetes cluster from the ground up. One thing you need to do before you get started is to install a few command line utilities and clone the Kubernetes The Hard Way git repository, which contains some additional configuration files that you will use to configure various Kubernetes components throughout this tutorial.

Log in to the `jumpbox`:

```bash
ssh root@jumpbox
```

All commands will be run as the `root` user. This is being done for the sake of convenience, and will help reduce the number of commands required to set everything up.
You will run all commands as the `root` user, for the sake of convenience, and it will help reduce the number of commands required to set everything up.

### Install Command Line Utilities
## Install Command Line Utilities

Now that you are logged into the `jumpbox` machine as the `root` user, you will install the command line utilities that will be used to preform various tasks throughout the tutorial.
Once logged into the `jumpbox` machine as the `root` user, you will install the command line utilities that you will use to preform various tasks throughout the tutorial:

```bash
sudo dnf -y install wget curl vim openssl git
```

### Sync GitHub Repository
## Sync GitHub Repository

Now it's time to download a copy of this tutorial which contains the configuration files and templates that will be used build your Kubernetes cluster from the ground up. Clone the Kubernetes The Hard Way git repository using the `git` command:
Now it is time to download a copy of this tutorial which contains the configuration files and templates that you will use to build your Kubernetes cluster from the ground up. Clone the Kubernetes The Hard Way git repository using the `git` command:

```bash
git clone --depth 1 \
Expand All @@ -45,17 +45,16 @@ pwd
/root/kubernetes-the-hard-way
```

### Download Binaries
## Download Binaries

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.
Here you will download the binaries for the various Kubernetes components. Store these binaries in the `Downloads` directory on the `jumpbox`. This will reduce the amount of internet bandwidth required to complete this tutorial as you avoid downloading the binaries multiple times for each machine in our Kubernetes cluster.

The binaries that will be downloaded are listed in the `downloads.txt` file, which you can review using the `cat` command:
The `download.txt` file lists the binaries you will download, which you can review using the `cat` command:

```bash
cat downloads.txt
```


Download the binaries listed in the `downloads.txt` file into a directory called `downloads` using the `wget` command:

```bash
Expand All @@ -66,7 +65,7 @@ wget -q --show-progress \
-i downloads.txt
```

Depending on your internet connection speed it may take a while to download the `584` megabytes of binaries, and once the download is complete, you can list them using the `ls` command:
Depending on your internet connection speed it might take a while to download the `584` megabytes of binaries. Once the download is complete, you can list them using the `ls` command:

```bash
ls -loh downloads
Expand All @@ -87,9 +86,9 @@ total 557M
-rw-r--r--. 1 root 11M Feb 13 20:19 runc.amd64
```

### Install kubectl
## Install kubectl

In this section you will install the `kubectl`, the official Kubernetes client command line tool, on the `jumpbox` machine. `kubectl will be used to interact with the Kubernetes control plane once your cluster is provisioned later in this tutorial.
In this section you will install the `kubectl`, the official Kubernetes client command line tool, on the `jumpbox` machine. You will use `kubectl` to interact with the Kubernetes control plane after provisioning of your cluster completes later in this tutorial.

Use the `chmod` command to make the `kubectl` binary executable and move it to the `/usr/local/bin/` directory:

Expand All @@ -98,7 +97,7 @@ Use the `chmod` command to make the `kubectl` binary executable and move it to t
cp downloads/kubectl /usr/local/bin/
```

At this point `kubectl` is installed and can be verified by running the `kubectl` command:
Since your installation of `kubectl` is complete, you can verify it by running the `kubectl` command:

```bash
kubectl version --client
Expand All @@ -109,6 +108,6 @@ Client Version: v1.32.0
Kustomize Version: v5.5.0
```

At this point the `jumpbox` has been set up with all the command line tools and utilities necessary to complete the labs in this tutorial.
At this point, you have set up `jumpbox` with all the command line tools and utilities necessary to complete the labs in this tutorial.

Next: [Provisioning Compute Resources](03-compute-resources.md)
Loading

0 comments on commit c4e350c

Please sign in to comment.