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
Use tabs and guide structure for airgap install page (#434)
* Use tabs and guide structure for airgap install page
Signed-off-by: Derek Nola <derek.nola@suse.com>
* Bump theme-common
Signed-off-by: Derek Nola <derek.nola@suse.com>
* Fix anchor links
Signed-off-by: Derek Nola <derek.nola@suse.com>
---------
Signed-off-by: Derek Nola <derek.nola@suse.com>
Copy file name to clipboardExpand all lines: docs/installation/airgap.md
+29-22Lines changed: 29 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,14 @@
2
2
title: "Air-Gap Install"
3
3
---
4
4
5
-
K3s can be installed in an air-gapped environment with two different methods. You can either deploy images via the [k3s-airgap-images tarball release artifact](#manually-deploy-images-method) or by using a [private registry](#private-registry-method). It is also possible to use the [embedded registry mirror](#embedded-registry-mirror) as long as there is at least one cluster member that has access to the required images.
5
+
This guide walks you through installing K3s in an air-gapped environment using a three-step process.
6
6
7
+
## 1. Load Images
7
8
8
-
## Load Images
9
+
Each image loading method has different requirements and is suited for different air-gapped scenarios. Choose the method that best fits your infrastructure and security requirements.
9
10
10
-
### Private Registry Method
11
+
<TabsqueryString="airgap-load-images">
12
+
<TabItemvalue="Private Registry Method">
11
13
12
14
These steps assume you have already created nodes in your air-gap environment,
13
15
are using the bundled containerd as the container runtime,
@@ -21,9 +23,10 @@ If you have not yet set up a private Docker registry, refer to the [official Reg
21
23
2. Use `docker image load k3s-airgap-images-amd64.tar.zst` to import images from the tar file into docker.
22
24
3. Use `docker tag` and `docker push` to retag and push the loaded images to your private registry.
23
25
4. Follow the [Private Registry Configuration](private-registry.md) guide to create and configure the `registries.yaml` file.
24
-
5. Proceed to the [Install K3s](#install-k3s) section below.
26
+
5. Proceed to the [Install K3s](#2-install-k3s) section below.
25
27
26
-
### Manually Deploy Images Method
28
+
</TabItem>
29
+
<TabItemvalue="Manually Deploy Images">
27
30
28
31
These steps assume you have already created nodes in your air-gap environment,
29
32
are using the bundled containerd as the container runtime,
@@ -39,7 +42,7 @@ This method requires you to manually deploy the necessary images to each node, a
3. Proceed to the [Install K3s](#install-k3s) section below.
45
+
3. Proceed to the [Install K3s](#2-install-k3s) section below.
43
46
44
47
#### Enable Conditional Image Imports
45
48
@@ -64,7 +67,8 @@ When this feature is enabled, it will not be possible to ensure that all images
64
67
:::
65
68
66
69
67
-
### Embedded Registry Mirror
70
+
</TabItem>
71
+
<TabItemvalue="Embedded Registry Mirror">
68
72
69
73
K3s includes an embedded distributed OCI-compliant registry mirror.
70
74
When enabled and properly configured, images available in the containerd image store on any node
@@ -73,11 +77,14 @@ can be pulled by other cluster members without access to an external image regis
73
77
The mirrored images may be sourced from an upstream registry, registry mirror, or airgap image tarball.
74
78
For more information on enabling the embedded distributed registry mirror, see the [Embedded Registry Mirror](./registry-mirror.md) documentation.
75
79
76
-
## Install K3s
80
+
</TabItem>
81
+
</Tabs>
82
+
83
+
## 2. Install K3s
77
84
78
85
### Prerequisites
79
86
80
-
Before installing K3s, complete the [Private Registry Method](#private-registry-method) or the [Manually Deploy Images Method](#manually-deploy-images-method) above to prepopulate the images that K3s needs to install.
87
+
Before installing K3s, choose one of the [Load Images](#1-load-images) options above to prepopulate the images that K3s needs to install.
81
88
82
89
#### Binaries
83
90
- Download the K3s binary from the [releases](https://github.com/k3s-io/k3s/releases) page, matching the same version used to get the airgap images. Place the binary in `/usr/local/bin` on each air-gapped node and ensure it is executable.
K3s's `--resolv-conf` flag is passed through to the kubelet, which may help with configuring pod DNS resolution in air-gap networks where the host does not have upstream nameservers configured.
161
164
:::
162
165
163
-
## Upgrading
166
+
## 3. Upgrading
164
167
165
-
### Install Script Method
168
+
<TabsqueryString="airgap-upgrade">
169
+
<TabItemvalue="Manual Upgrade">
166
170
167
171
Upgrading an air-gap environment can be accomplished in the following manner:
168
172
@@ -172,18 +176,21 @@ node. Delete the old tar file.
172
176
with the same environment variables.
173
177
3. Restart the K3s service (if not restarted automatically by installer).
174
178
175
-
176
-
### Automated Upgrades Method
179
+
</TabItem>
180
+
<TabItemvalue="Automated Upgrade">
177
181
178
182
K3s supports [automated upgrades](../upgrades/automated.md). To enable this in air-gapped environments, you must ensure the required images are available in your private registry.
179
183
180
184
You will need the version of rancher/k3s-upgrade that corresponds to the version of K3s you intend to upgrade to. Note, the image tag replaces the `+` in the K3s release with a `-` because Docker images do not support `+`.
181
185
182
-
You will also need the versions of system-upgrade-controller and kubectl that are specified in the system-upgrade-controller manifest YAML that you will deploy. Check for the latest release of the system-upgrade-controller [here](https://github.com/rancher/system-upgrade-controller/releases/latest) and download the system-upgrade-controller.yaml to determine the versions you need to push to your private registry. For example, in release v0.4.0 of the system-upgrade-controller, these images are specified in the manifest YAML:
186
+
You will also need the versions of system-upgrade-controller and kubectl that are specified in the system-upgrade-controller manifest YAML that you will deploy. Check for the latest release of the system-upgrade-controller [here](https://github.com/rancher/system-upgrade-controller/releases/latest) and download the system-upgrade-controller.yaml to determine the versions you need to push to your private registry. For example, in release v0.15.2 of the system-upgrade-controller, these images are specified in the manifest YAML:
183
187
184
188
```
185
-
rancher/system-upgrade-controller:v0.4.0
186
-
rancher/kubectl:v0.17.0
189
+
rancher/system-upgrade-controller:v0.15.2
190
+
rancher/kubectl:v1.30.3
187
191
```
188
192
189
193
Once you have added the necessary rancher/k3s-upgrade, rancher/system-upgrade-controller, and rancher/kubectl images to your private registry, follow the [automated upgrades](../upgrades/automated.md) guide.
Copy file name to clipboardExpand all lines: docs/installation/registry-mirror.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,8 @@ This option enables the embedded mirror for use on all nodes in the cluster.
16
16
When enabled at a cluster level, all nodes will host a local OCI registry on port 6443,
17
17
and publish a list of available images via a peer to peer network on port 5001.
18
18
Any image available in the containerd image store on any node, can be pulled by other cluster members without access to an external registry.
19
-
Images imported via [air-gap image tar files](./airgap.md#manually-deploy-images-method) are pinned in containerd to
19
+
<!-- Note: Not a regular markdown header because it exists inside a Tabs structure, access it via queryString-->
20
+
Images imported via [air-gap image tar files](./airgap.md?airgap-load-images=Manually+Deploy+Images) are pinned in containerd to
20
21
ensure that they remain available and are not pruned by Kubelet garbage collection.
21
22
22
23
The peer to peer port can changed from 5001 by setting the `K3S_P2P_PORT` environment variable for the K3s service. The port must be set to the same value on all nodes.
0 commit comments