Update to Kubernetes 1.32.3

pull/855/head
Kelsey Hightower 2025-04-06 10:24:08 -07:00
parent 5a325c23d7
commit 0191f7f7c3
14 changed files with 133 additions and 143 deletions

View File

@ -19,10 +19,10 @@ Kubernetes The Hard Way guides you through bootstrapping a basic Kubernetes clus
Component versions: Component versions:
* [kubernetes](https://github.com/kubernetes/kubernetes) v1.31.x * [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x
* [containerd](https://github.com/containerd/containerd) v2.0.x * [containerd](https://github.com/containerd/containerd) v2.1.x
* [cni](https://github.com/containernetworking/cni) v1.6.x * [cni](https://github.com/containernetworking/cni) v1.6.x
* [etcd](https://github.com/etcd-io/etcd) v3.4.x * [etcd](https://github.com/etcd-io/etcd) v3.6.x
## Labs ## Labs

View File

@ -1,5 +1,6 @@
kind: KubeletConfiguration kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1 apiVersion: kubelet.config.k8s.io/v1beta1
address: "0.0.0.0"
authentication: authentication:
anonymous: anonymous:
enabled: false enabled: false
@ -14,8 +15,15 @@ clusterDNS:
- "10.32.0.10" - "10.32.0.10"
cgroupDriver: systemd cgroupDriver: systemd
containerRuntimeEndpoint: "unix:///var/run/containerd/containerd.sock" containerRuntimeEndpoint: "unix:///var/run/containerd/containerd.sock"
enableServer: true
failSwapOn: false
maxPods: 16
memorySwap:
swapBehavior: LimitedSwap
podCIDR: "SUBNET" podCIDR: "SUBNET"
port: 10250
resolvConf: "/etc/resolv.conf" resolvConf: "/etc/resolv.conf"
registerNode: true
runtimeRequestTimeout: "15m" runtimeRequestTimeout: "15m"
tlsCertFile: "/var/lib/kubelet/kubelet.crt" tlsCertFile: "/var/lib/kubelet/kubelet.crt"
tlsPrivateKeyFile: "/var/lib/kubelet/kubelet.key" tlsPrivateKeyFile: "/var/lib/kubelet/kubelet.key"

View File

@ -4,7 +4,7 @@ In this lab you will review the machine requirements necessary to follow this tu
## Virtual or Physical Machines ## Virtual or Physical Machines
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. This tutorial requires four (4) virtual or physical ARM64 machines running Debian 12 (bookworm). The following table list the four machines and their CPU, memory, and storage requirements.
| Name | Description | CPU | RAM | Storage | | Name | Description | CPU | RAM | Storage |
|---------|------------------------|-----|-------|---------| |---------|------------------------|-----|-------|---------|
@ -13,7 +13,7 @@ This tutorial requires four (4) virtual or physical ARM64 machines running Debia
| node-0 | Kubernetes worker node | 1 | 2GB | 20GB | | node-0 | Kubernetes worker node | 1 | 2GB | 20GB |
| node-1 | 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 OS version. Once you have all four machines provisioned, verify the system requirements by running the `uname` command on each machine:
```bash ```bash
uname -mov uname -mov

View File

@ -1,8 +1,8 @@
# Set Up The Jumpbox # 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`. This machine will be used to run commands throughout 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.
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. Before we get started we need to 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.
Log in to the `jumpbox`: Log in to the `jumpbox`:
@ -65,30 +65,30 @@ wget -q --show-progress \
-i downloads.txt -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 may take a while to download over `500` megabytes of binaries, and once the download is complete, you can list them using the `ls` command:
```bash ```bash
ls -loh downloads ls -loh downloads
``` ```
```text ```text
total 510M total 544M
-rw-r--r-- 1 root 48M Oct 15 02:37 cni-plugins-linux-arm64-v1.6.0.tgz -rw-r--r-- 1 root 48M Jan 6 08:13 cni-plugins-linux-arm64-v1.6.2.tgz
-rw-r--r-- 1 root 32M Nov 5 11:37 containerd-2.0.0-linux-arm64.tar.gz -rw-r--r-- 1 root 34M Mar 17 19:33 containerd-2.1.0-beta.0-linux-arm64.tar.gz
-rw-r--r-- 1 root 17M Aug 13 03:48 crictl-v1.31.1-linux-arm64.tar.gz -rw-r--r-- 1 root 17M Dec 9 01:16 crictl-v1.32.0-linux-arm64.tar.gz
-rw-r--r-- 1 root 16M Sep 11 11:28 etcd-v3.4.34-linux-arm64.tar.gz -rw-r--r-- 1 root 21M Mar 27 16:15 etcd-v3.6.0-rc.3-linux-arm64.tar.gz
-rw-r--r-- 1 root 84M Oct 22 21:41 kube-apiserver -rw-r--r-- 1 root 87M Mar 11 20:31 kube-apiserver
-rw-r--r-- 1 root 79M Oct 22 21:41 kube-controller-manager -rw-r--r-- 1 root 80M Mar 11 20:31 kube-controller-manager
-rw-r--r-- 1 root 53M Oct 22 21:41 kubectl -rw-r--r-- 1 root 54M Mar 11 20:31 kubectl
-rw-r--r-- 1 root 72M Oct 22 21:41 kubelet -rw-r--r-- 1 root 72M Mar 11 20:31 kubelet
-rw-r--r-- 1 root 61M Oct 22 21:41 kube-proxy -rw-r--r-- 1 root 63M Mar 11 20:31 kube-proxy
-rw-r--r-- 1 root 60M Oct 22 21:41 kube-scheduler -rw-r--r-- 1 root 62M Mar 11 20:31 kube-scheduler
-rw-r--r-- 1 root 11M Nov 1 15:23 runc.arm64 -rw-r--r-- 1 root 11M Mar 4 04:14 runc.arm64
``` ```
### 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 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. `kubectl` will be used to interact with the Kubernetes control plane once your cluster is provisioned later in this tutorial.
Use the `chmod` command to make the `kubectl` binary executable and move it to the `/usr/local/bin/` directory: Use the `chmod` command to make the `kubectl` binary executable and move it to the `/usr/local/bin/` directory:
@ -106,8 +106,8 @@ kubectl version --client
``` ```
```text ```text
Client Version: v1.31.2 Client Version: v1.32.3
Kustomize Version: v5.4.2 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 the `jumpbox` has been set up with all the command line tools and utilities necessary to complete the labs in this tutorial.

View File

@ -127,7 +127,7 @@ node-1.kubernetes.local
## Host Lookup Table ## Host Lookup Table
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`. In this section you will generate a `hosts` file which will be appended to `/etc/hosts` file on the `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`.
Create a new `hosts` file and add a header to identify the machines being added: Create a new `hosts` file and add a header to identify the machines being added:
@ -184,8 +184,6 @@ cat /etc/hosts
ff02::1 ip6-allnodes ff02::1 ip6-allnodes
ff02::2 ip6-allrouters ff02::2 ip6-allrouters
# Kubernetes The Hard Way # Kubernetes The Hard Way
XXX.XXX.XXX.XXX server.kubernetes.local server XXX.XXX.XXX.XXX server.kubernetes.local server
XXX.XXX.XXX.XXX node-0.kubernetes.local node-0 XXX.XXX.XXX.XXX node-0.kubernetes.local node-0

View File

@ -188,7 +188,7 @@ Copy the `kubelet` and `kube-proxy` kubeconfig files to the node-0 instance:
```bash ```bash
for host in node-0 node-1; do for host in node-0 node-1; do
ssh root@$host "mkdir /var/lib/{kube-proxy,kubelet}" ssh root@$host "mkdir -p /var/lib/{kube-proxy,kubelet}"
scp kube-proxy.kubeconfig \ scp kube-proxy.kubeconfig \
root@$host:/var/lib/kube-proxy/kubeconfig \ root@$host:/var/lib/kube-proxy/kubeconfig \

View File

@ -8,7 +8,7 @@ Copy `etcd` binaries and systemd unit files to the `server` instance:
```bash ```bash
scp \ scp \
downloads/etcd-v3.4.34-linux-arm64.tar.gz \ downloads/etcd-v3.6.0-rc.3-linux-arm64.tar.gz \
units/etcd.service \ units/etcd.service \
root@server:~/ root@server:~/
``` ```
@ -27,8 +27,8 @@ Extract and install the `etcd` server and the `etcdctl` command line utility:
```bash ```bash
{ {
tar -xvf etcd-v3.4.34-linux-arm64.tar.gz tar -xvf etcd-v3.6.0-rc.3-linux-arm64.tar.gz
mv etcd-v3.4.34-linux-arm64/etcd* /usr/local/bin/ mv etcd-v3.6.0-rc.3-linux-arm64/etcd* /usr/local/bin/
} }
``` ```

View File

@ -1,10 +1,10 @@
# Bootstrapping the Kubernetes Control Plane # Bootstrapping the Kubernetes Control Plane
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. In this lab you will bootstrap the Kubernetes control plane. The following components will be installed on the `server` machine: Kubernetes API Server, Scheduler, and Controller Manager.
## Prerequisites ## Prerequisites
Connect to the `jumpbox` and copy Kubernetes binaries and systemd unit files to the `server` instance: Connect to the `jumpbox` and copy Kubernetes binaries and systemd unit files to the `server` machine:
```bash ```bash
scp \ scp \
@ -20,7 +20,7 @@ scp \
root@server:~/ root@server:~/
``` ```
The commands in this lab must be run on the controller instance: `server`. Login to the controller instance using the `ssh` command. Example: The commands in this lab must be run on the `server` machine. Login to the `server` machine using the `ssh` command. Example:
```bash ```bash
ssh root@server ssh root@server
@ -140,7 +140,7 @@ In this section you will configure RBAC permissions to allow the Kubernetes API
> This tutorial sets the Kubelet `--authorization-mode` flag to `Webhook`. Webhook mode uses the [SubjectAccessReview](https://kubernetes.io/docs/admin/authorization/#checking-api-access) API to determine authorization. > This tutorial sets the Kubelet `--authorization-mode` flag to `Webhook`. Webhook mode uses the [SubjectAccessReview](https://kubernetes.io/docs/admin/authorization/#checking-api-access) API to determine authorization.
The commands in this section will affect the entire cluster and only need to be run on the controller node. The commands in this section will affect the entire cluster and only need to be run on the `server` machine.
```bash ```bash
ssh root@server ssh root@server
@ -166,12 +166,12 @@ curl -k --cacert ca.crt https://server.kubernetes.local:6443/version
```text ```text
{ {
"major": "1", "major": "1",
"minor": "31", "minor": "32",
"gitVersion": "v1.31.2", "gitVersion": "v1.32.3",
"gitCommit": "5864a4677267e6adeae276ad85882a8714d69d9d", "gitCommit": "32cc146f75aad04beaaa245a7157eb35063a9f99",
"gitTreeState": "clean", "gitTreeState": "clean",
"buildDate": "2024-10-22T20:28:14Z", "buildDate": "2025-03-11T19:52:21Z",
"goVersion": "go1.22.8", "goVersion": "go1.23.6",
"compiler": "gc", "compiler": "gc",
"platform": "linux/arm64" "platform": "linux/arm64"
} }

View File

@ -4,7 +4,9 @@ In this lab you will bootstrap two Kubernetes worker nodes. The following compon
## Prerequisites ## Prerequisites
Copy Kubernetes binaries and systemd unit files to each worker instance: The commands in this section must be run from the `jumpbox`.
Copy the Kubernetes binaries and systemd unit files to each worker instance:
```bash ```bash
for host in node-0 node-1; do for host in node-0 node-1; do
@ -24,9 +26,9 @@ done
for host in node-0 node-1; do for host in node-0 node-1; do
scp \ scp \
downloads/runc.arm64 \ downloads/runc.arm64 \
downloads/crictl-v1.31.1-linux-arm64.tar.gz \ downloads/crictl-v1.32.0-linux-arm64.tar.gz \
downloads/cni-plugins-linux-arm64-v1.6.0.tgz \ downloads/cni-plugins-linux-arm64-v1.6.2.tgz \
downloads/containerd-2.0.0-linux-arm64.tar.gz \ downloads/containerd-2.1.0-beta.0-linux-arm64.tar.gz \
downloads/kubectl \ downloads/kubectl \
downloads/kubelet \ downloads/kubelet \
downloads/kube-proxy \ downloads/kube-proxy \
@ -41,7 +43,7 @@ for host in node-0 node-1; do
done done
``` ```
The commands in this lab must be run on each worker instance: `node-0`, `node-1`. Login to the worker instance using the `ssh` command. Example: The commands in the next section must be run on each worker instance: `node-0`, `node-1`. Login to the worker instance using the `ssh` command. Example:
```bash ```bash
ssh root@node-0 ssh root@node-0
@ -60,24 +62,6 @@ Install the OS dependencies:
> The socat binary enables support for the `kubectl port-forward` command. > The socat binary enables support for the `kubectl port-forward` command.
### Disable Swap
By default, the kubelet will fail to start if [swap](https://help.ubuntu.com/community/SwapFaq) is enabled. It is [recommended](https://github.com/kubernetes/kubernetes/issues/7294) that swap be disabled to ensure Kubernetes can provide proper resource allocation and quality of service.
Verify if swap is enabled:
```bash
swapon --show
```
If output is empty then swap is not enabled. If swap is enabled run the following command to disable swap immediately:
```bash
swapoff -a
```
> To ensure swap remains off after reboot consult your Linux distro documentation.
Create the installation directories: Create the installation directories:
```bash ```bash
@ -95,9 +79,9 @@ Install the worker binaries:
```bash ```bash
{ {
mkdir -p containerd mkdir -p containerd
tar -xvf crictl-v1.31.1-linux-arm64.tar.gz tar -xvf crictl-v1.32.0-linux-arm64.tar.gz
tar -xvf containerd-2.0.0-linux-arm64.tar.gz -C containerd tar -xvf containerd-2.1.0-beta.0-linux-arm64.tar.gz -C containerd
tar -xvf cni-plugins-linux-arm64-v1.6.0.tgz -C /opt/cni/bin/ tar -xvf cni-plugins-linux-arm64-v1.6.2.tgz -C /opt/cni/bin/
mv runc.arm64 runc mv runc.arm64 runc
chmod +x crictl kubectl kube-proxy kubelet runc chmod +x crictl kubectl kube-proxy kubelet runc
mv crictl kubectl kube-proxy kubelet runc /usr/local/bin/ mv crictl kubectl kube-proxy kubelet runc /usr/local/bin/
@ -155,6 +139,8 @@ Create the `kubelet-config.yaml` configuration file:
} }
``` ```
Be sure to complete the steps in this section on each worker node, `node-0` and `node-1`, before moving on to the next section.
## Verification ## Verification
The compute instances created in this tutorial will not have permission to complete this section. Run the following commands from the `jumpbox` machine. The compute instances created in this tutorial will not have permission to complete this section. Run the following commands from the `jumpbox` machine.
@ -169,8 +155,8 @@ ssh root@server \
``` ```
NAME STATUS ROLES AGE VERSION NAME STATUS ROLES AGE VERSION
node-0 Ready <none> 1m v1.31.2 node-0 Ready <none> 1m v1.32.3
node-1 Ready <none> 10s v1.31.2 node-1 Ready <none> 10s v1.32.3
``` ```
Next: [Configuring kubectl for Remote Access](10-configuring-kubectl.md) Next: [Configuring kubectl for Remote Access](10-configuring-kubectl.md)

View File

@ -18,12 +18,12 @@ curl -k --cacert ca.crt \
```text ```text
{ {
"major": "1", "major": "1",
"minor": "31", "minor": "32",
"gitVersion": "v1.31.2", "gitVersion": "v1.32.3",
"gitCommit": "5864a4677267e6adeae276ad85882a8714d69d9d", "gitCommit": "32cc146f75aad04beaaa245a7157eb35063a9f99",
"gitTreeState": "clean", "gitTreeState": "clean",
"buildDate": "2024-10-22T20:28:14Z", "buildDate": "2025-03-11T19:52:21Z",
"goVersion": "go1.22.8", "goVersion": "go1.23.6",
"compiler": "gc", "compiler": "gc",
"platform": "linux/arm64" "platform": "linux/arm64"
} }
@ -61,9 +61,9 @@ kubectl version
``` ```
```text ```text
Client Version: v1.31.2 Client Version: v1.32.3
Kustomize Version: v5.4.2 Kustomize Version: v5.5.0
Server Version: v1.31.2 Server Version: v1.32.3
``` ```
List the nodes in the remote Kubernetes cluster: List the nodes in the remote Kubernetes cluster:
@ -74,8 +74,8 @@ kubectl get nodes
``` ```
NAME STATUS ROLES AGE VERSION NAME STATUS ROLES AGE VERSION
node-0 Ready <none> 30m v1.31.2 node-0 Ready <none> 30m v1.32.3
node-1 Ready <none> 35m v1.31.2 node-1 Ready <none> 30m v1.32.3
``` ```
Next: [Provisioning Pod Network Routes](11-pod-network-routes.md) Next: [Provisioning Pod Network Routes](11-pod-network-routes.md)

View File

@ -25,24 +25,24 @@ ssh root@server \
00000010 73 2f 64 65 66 61 75 6c 74 2f 6b 75 62 65 72 6e |s/default/kubern| 00000010 73 2f 64 65 66 61 75 6c 74 2f 6b 75 62 65 72 6e |s/default/kubern|
00000020 65 74 65 73 2d 74 68 65 2d 68 61 72 64 2d 77 61 |etes-the-hard-wa| 00000020 65 74 65 73 2d 74 68 65 2d 68 61 72 64 2d 77 61 |etes-the-hard-wa|
00000030 79 0a 6b 38 73 3a 65 6e 63 3a 61 65 73 63 62 63 |y.k8s:enc:aescbc| 00000030 79 0a 6b 38 73 3a 65 6e 63 3a 61 65 73 63 62 63 |y.k8s:enc:aescbc|
00000040 3a 76 31 3a 6b 65 79 31 3a 9b 79 a5 b9 49 a2 77 |:v1:key1:.y..I.w| 00000040 3a 76 31 3a 6b 65 79 31 3a 5e 47 79 cf 90 88 5c |:v1:key1:^Gy...\|
00000050 c0 6a c9 12 7c b4 c7 c4 64 41 37 97 4a 83 a9 c1 |.j..|...dA7.J...| 00000050 29 69 62 5c ad 76 07 ce 6e 9a 60 8c 7c 5b c9 8d |)ib\.v..n.`.|[..|
00000060 4f 14 ae 73 ab b8 38 26 11 14 0a 40 b8 f3 0e 0a |O..s..8&...@....| 00000060 8c 29 5f dc b1 71 0f 3b b4 db d0 92 47 9e ea 64 |.)_..q.;....G..d|
00000070 f5 a7 a2 2c b6 35 b1 83 22 15 aa d0 dd 25 11 3e |...,.5.."....%.>| 00000070 78 12 03 f8 b1 21 9c f9 21 19 0b d0 03 9c ca 09 |x....!..!.......|
00000080 c4 e9 69 1c 10 7a 9d f7 dc 22 28 89 2c 83 dd 0b |..i..z..."(.,...| 00000080 94 54 50 2f 0e d2 99 bd 38 fa d1 88 c0 0a 93 84 |.TP/....8.......|
00000090 a4 5f 3a 93 0f ff 1f f8 bc 97 43 0e e5 05 5d f9 |._:.......C...].| 00000090 f0 5b c3 ce ca 8c b9 23 4a 49 52 37 20 30 55 71 |.[.....#JIR7 0Uq|
000000a0 ef 88 02 80 49 81 f1 58 b0 48 39 19 14 e1 b1 34 |....I..X.H9....4| 000000a0 4d 9b 58 dd 95 83 34 7c 03 fa 66 f5 e7 24 26 99 |M.X...4|..f..$&.|
000000b0 f6 b0 9b 0a 9c 53 27 2b 23 b9 e6 52 b4 96 81 70 |.....S'+#..R...p| 000000b0 ba f5 f3 6c 5f f7 19 5f 0e 60 8d 68 9e d3 f0 ca |...l_.._.`.h....|
000000c0 a7 b6 7b 4f 44 d4 9c 07 51 a3 1b 22 96 4c 24 6c |..{OD...Q..".L$l| 000000c0 4e cc 11 2e 45 ae 9e 41 3d f1 4b 2e 89 e5 05 81 |N...E..A=.K.....|
000000d0 44 6c db 53 f5 31 e6 3f 15 7b 4c 23 06 c1 37 73 |Dl.S.1.?.{L#..7s| 000000d0 8e 2e 40 78 72 d5 f9 63 9c e8 cc 65 a8 34 9a 41 |..@xr..c...e.4.A|
000000e0 e1 97 8e 4e 1a 2e 2c 1a da 85 c3 ff 42 92 d0 f1 |...N..,.....B...| 000000e0 f4 5b f6 9a ba b2 c2 8c 7b b5 d6 04 2a ad 79 c1 |.[......{...*.y.|
000000f0 87 b8 39 89 e8 46 2e b3 56 68 41 b8 1e 29 3d ba |..9..F..VhA..)=.| 000000f0 71 9c e8 34 17 90 07 70 f4 18 a9 fd 80 3d 18 30 |q..4...p.....=.0|
00000100 dd d8 27 4c 7f d5 fe 97 3c a3 92 e9 3d ae 47 ee |..'L....<...=.G.| 00000100 1d 07 cb 35 e9 fd 44 ba cb 28 15 1e 51 3b 29 75 |...5..D..(..Q;)u|
00000110 24 6a 0b 7c ac b8 28 e6 25 a6 ce 04 80 ee c2 eb |$j.|..(.%.......| 00000110 b9 ff 16 df d1 7b 91 b9 75 4d f8 c4 26 2e 0c f9 |.....{..uM..&...|
00000120 4c 86 fa 70 66 13 63 59 03 c2 70 57 8b fb a1 d6 |L..pf.cY..pW....| 00000120 84 02 5e 52 a3 f5 da bd d5 22 0e 9c 1a 87 47 89 |..^R....."....G.|
00000130 f2 58 08 84 43 f3 70 7f ad d8 30 63 3e ef ff b6 |.X..C.p...0c>...| 00000130 20 11 ac ce d0 c6 98 2a 96 e9 33 c5 26 b3 ec 55 | ......*..3.&..U|
00000140 b2 06 c3 45 c5 d8 89 d3 47 4a 72 ca 20 9b cf b5 |...E....GJr. ...| 00000140 f6 30 d5 5c 73 29 ca c8 8d af ab 4b fc 73 fc 11 |.0.\s).....K.s..|
00000150 4b 3d 6d b4 58 ae 42 4b 7f 0a |K=m.X.BK..| 00000150 c0 71 eb 20 3c 95 f9 74 61 0a |.q. <..ta.|
0000015a 0000015a
``` ```
@ -100,13 +100,13 @@ curl --head http://127.0.0.1:8080
```text ```text
HTTP/1.1 200 OK HTTP/1.1 200 OK
Server: nginx/1.27.2 Server: nginx/1.27.4
Date: Thu, 14 Nov 2024 00:16:32 GMT Date: Sun, 06 Apr 2025 17:17:12 GMT
Content-Type: text/html Content-Type: text/html
Content-Length: 615 Content-Length: 615
Last-Modified: Wed, 02 Oct 2024 15:13:19 GMT Last-Modified: Wed, 05 Feb 2025 11:06:32 GMT
Connection: keep-alive Connection: keep-alive
ETag: "66fd630f-267" ETag: "67a34638-267"
Accept-Ranges: bytes Accept-Ranges: bytes
``` ```
@ -131,7 +131,7 @@ kubectl logs $POD_NAME
```text ```text
... ...
127.0.0.1 - - [14/Nov/2024:00:16:32 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.88.1" "-" 127.0.0.1 - - [06/Apr/2025:17:17:12 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.88.1" "-"
``` ```
### Exec ### Exec
@ -145,7 +145,7 @@ kubectl exec -ti $POD_NAME -- nginx -v
``` ```
```text ```text
nginx version: nginx/1.27.2 nginx version: nginx/1.27.4
``` ```
## Services ## Services
@ -177,14 +177,13 @@ curl -I http://node-0:${NODE_PORT}
``` ```
```text ```text
HTTP/1.1 200 OK Server: nginx/1.27.4
Server: nginx/1.25.3 Date: Sun, 06 Apr 2025 17:18:36 GMT
Date: Sun, 29 Oct 2023 05:11:15 GMT
Content-Type: text/html Content-Type: text/html
Content-Length: 615 Content-Length: 615
Last-Modified: Tue, 24 Oct 2023 13:46:47 GMT Last-Modified: Wed, 05 Feb 2025 11:06:32 GMT
Connection: keep-alive Connection: keep-alive
ETag: "6537cac7-267" ETag: "67a34638-267"
Accept-Ranges: bytes Accept-Ranges: bytes
``` ```

View File

@ -1,11 +1,11 @@
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kubectl https://dl.k8s.io/v1.32.3/bin/linux/arm64/kubectl
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kube-apiserver https://dl.k8s.io/v1.32.3/bin/linux/arm64/kube-apiserver
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kube-controller-manager https://dl.k8s.io/v1.32.3/bin/linux/arm64/kube-controller-manager
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kube-scheduler https://dl.k8s.io/v1.32.3/bin/linux/arm64/kube-scheduler
https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.31.1/crictl-v1.31.1-linux-arm64.tar.gz https://dl.k8s.io/v1.32.3/bin/linux/arm64/kube-proxy
https://github.com/opencontainers/runc/releases/download/v1.2.1/runc.arm64 https://dl.k8s.io/v1.32.3/bin/linux/arm64/kubelet
https://github.com/containernetworking/plugins/releases/download/v1.6.0/cni-plugins-linux-arm64-v1.6.0.tgz https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.32.0/crictl-v1.32.0-linux-arm64.tar.gz
https://github.com/containerd/containerd/releases/download/v2.0.0/containerd-2.0.0-linux-arm64.tar.gz https://github.com/opencontainers/runc/releases/download/v1.3.0-rc.1/runc.arm64
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kube-proxy https://github.com/containernetworking/plugins/releases/download/v1.6.2/cni-plugins-linux-arm64-v1.6.2.tgz
https://dl.k8s.io/v1.31.2/bin/linux/arm64/kubelet https://github.com/containerd/containerd/releases/download/v2.1.0-beta.0/containerd-2.1.0-beta.0-linux-arm64.tar.gz
https://github.com/etcd-io/etcd/releases/download/v3.4.34/etcd-v3.4.34-linux-arm64.tar.gz https://github.com/etcd-io/etcd/releases/download/v3.6.0-rc.3/etcd-v3.6.0-rc.3-linux-arm64.tar.gz

View File

@ -8,7 +8,6 @@ Requires=containerd.service
ExecStart=/usr/local/bin/kubelet \ ExecStart=/usr/local/bin/kubelet \
--config=/var/lib/kubelet/kubelet-config.yaml \ --config=/var/lib/kubelet/kubelet-config.yaml \
--kubeconfig=/var/lib/kubelet/kubeconfig \ --kubeconfig=/var/lib/kubelet/kubeconfig \
--register-node=true \
--v=2 --v=2
Restart=on-failure Restart=on-failure
RestartSec=5 RestartSec=5