kubernetes-guide/deploy/k3s/offline-installation.md

105 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# k3s 国内离线安装方法
## 步骤
### 下载离线文件
进入 [k3s release](https://github.com/k3s-io/k3s/releases) 页面,下载 k3s 二进制和依赖镜像的压缩包:
* `k3s`: 二进制。
* `k3s-airgap-images-amd64.tar`: 镜像压缩包。
下载安装脚本:
```bash
curl -o install.sh https://get.k3s.io
```
下载完将所有文件放入需要安装 k3s 的机器上。
### 安装依赖镜像
```bash
sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
```
### 安装 k3s 二进制
```bash
chmod +x k3s
cp k3s /usr/local/bin/
```
### 执行安装脚本
```bash
chmod +x install.sh
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
```
### 验证
查看 k3s 运行状态:
```bash
systemctl status k3s
```
查看 k3s 日志:
```bash
journalctl -u k3s -f
```
查看 k3s 集群状态:
```bash
$ k3s kubectl get node
NAME STATUS ROLES AGE VERSION
vm-55-160-centos Ready control-plane,master 3m22s v1.25.2+k3s1
$ k3s kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-5b5579c644-6h99x 1/1 Running 0 3m22s
kube-system coredns-75fc8f8fff-sjjzs 1/1 Running 0 3m22s
kube-system helm-install-traefik-crd-mgffn 0/1 Completed 0 3m22s
kube-system metrics-server-74474969b-6bj6r 1/1 Running 0 3m22s
kube-system svclb-traefik-0ab06643-6vj96 2/2 Running 0 3m1s
kube-system helm-install-traefik-m7wdm 0/1 Completed 2 3m22s
kube-system traefik-7d647b7597-dw6b4 1/1 Running 0 3m1s
```
### 获取 kubeconfig
若希望在本机之外用 kubectl 操作集群,可以将 kubeconfig 导出来:
```bash
k3s kubectl config view --raw > k3s
```
修改其中 server 地址的 IP 为本机 IP将 kubeconfig 文件放到 kubectl 所在机器上,然后用 [kubecm](https://github.com/sunny0826/kubecm) 合并到本地 kubeconfig:
```bash
kubecm add --context-name=k3s -cf k3s
```
使用 [kubectx](https://github.com/ahmetb/kubectx) 切换 context:
```bash
$ kubectl ctx k3s
Switched to context "k3s".
```
使用 kubectl 操作 k3s 集群:
```bash
$ kubectl get node
NAME STATUS ROLES AGE VERSION
vm-55-160-centos Ready control-plane,master 14m v1.25.2+k3s1
```
## 参考资料
* [k3s 离线安装官方文档](https://docs.k3s.io/zh/installation/airgap)