Skip to content

Commit 881a139

Browse files
committed
Add RKE2 "the Hard Way" blog posts and training series content
- Update blog content with new sections on RKE2 installation, covering containerd, kubelet, etcd, kube-apiserver, kube-controller-manager, and kube-scheduler setup as static pods. - Add detailed instructions for installing Cilium CNI and configuring CoreDNS for cluster DNS resolution. - Implement Ingress Nginx installation and external access setup for services. - Enhance makefile to support local development server for testing blog content. - Ensure comprehensive cluster verification steps are included, along with kubectl access configuration.
1 parent 44473da commit 881a139

27 files changed

+3226
-1814
lines changed

blog/content/training/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Explore our in-depth training resources on Kubernetes, Rancher, networking, and
1515
- [Rancher](/training/rancher/)
1616
- [RKE](/training/rke/)
1717
- [RKE2](/training/rke2/)
18+
- [RKE2 the hard way](/training/rke2-hard-way/)
1819
- [Longhorn](/training/longhorn/)
1920
- [Networking](/training/networking/)
2021
- [Fleet](/training/fleet/)

blog/content/training/rke2-hard-way/01-introduction-prerequisites.md

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,65 @@ Ensure you have `sudo` privileges on all nodes.
7474

7575
---
7676

77+
## Initial Node Setup
78+
79+
Before we begin installing components, let's set up some basic configurations on our nodes to ensure they can communicate properly throughout the tutorial.
80+
81+
### 1. Configure /etc/hosts
82+
83+
On each node, let's configure the `/etc/hosts` file to ensure that all nodes can reach each other by hostname:
84+
85+
```bash
86+
# Run on all nodes
87+
sudo cat >> /etc/hosts << EOF
88+
# Kubernetes Nodes
89+
192.168.1.101 node01
90+
192.168.1.102 node02
91+
192.168.1.103 node03
92+
EOF
93+
```
94+
95+
> ⚠️ **Important:** Replace the IP addresses above with the actual IP addresses of your nodes. These are just examples.
96+
97+
Verify connectivity by pinging the other nodes by hostname:
98+
99+
```bash
100+
# Run these commands on each node to verify
101+
ping -c 3 node01
102+
ping -c 3 node02
103+
ping -c 3 node03
104+
```
105+
106+
### 2. Set Up SSH Keys for Certificate Distribution
107+
108+
Since we'll be generating certificates on `node01` and distributing them to the other nodes, let's set up SSH keys to enable password-less SSH:
109+
110+
```bash
111+
# Run these commands on node01
112+
113+
# Generate an SSH key if one doesn't already exist
114+
[ ! -f ~/.ssh/id_rsa ] && ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
115+
116+
# Copy the SSH key to node02 and node03
117+
# You'll be prompted for the password of the remote users
118+
ssh-copy-id node02
119+
ssh-copy-id node03
120+
```
121+
122+
Verify SSH access works correctly:
123+
124+
```bash
125+
# Test SSH access (should connect without password prompt)
126+
ssh node02 "hostname"
127+
ssh node03 "hostname"
128+
```
129+
130+
This will ensure that we can easily copy certificates and other files between nodes when needed.
131+
132+
---
133+
77134
## Next Steps
78135

79-
Next, we will move to **Part 2** and set up the **Certificate Authority** and generate the **TLS certificates** for our Kubernetes cluster!
136+
Next, we will move to **Part 2** and set up a **Certificate Authority** and generate **TLS certificates** for our Kubernetes cluster. This is a critical step that must be completed before setting up any components!
80137

81-
👉 Stay tuned for **Part 2: Setting up containerd and kubelet!**
138+
👉 Continue to **[Part 2: Certificate Authority and TLS Certificates](/training/rke2-hard-way/02-certificate-authority-tls-certificates/)**

0 commit comments

Comments
 (0)