ubuntu22.04快速安装 k3s 1.23.16 环境

---- 支持 amd64

离线文件准备 (本地个人电脑上准备)

```shell

git clone https://gitlab.orayer.com/qiushi/k3s-installer
cd k3s-installer

下载对应的离线文件 k3s到当前目录

wget https://github.com/k3s-io/k3s/releases/download/v1.23.16-rc2%2Bk3s1/k3s

下载对应的离线镜像文件到当前目录

wget https://github.com/k3s-io/k3s/releases/download/v1.23.16-rc2%2Bk3s1/k3s-airgap-images-amd64.tar

 导出插件用到的docker镜像

sudo ./save_images.sh

然后把整个 k3s-installer 文件夹打包压缩,上传到所有需要部署的服务器上去。

需要确保图中那3个`红圈`中的文件存在

打包成 k3s-installer.tar.gz 压缩包上传到服务器上去

cd ../

tar -czvf k3s-installer.tar.gz k3s-installer

 一、快速配置环境(每台服务器都要执行的部分):

bash init-config.sh

运行上述脚本,将执行下述内容:

+ 配置必要的内核加载

+ 配置必要的网络环境

+ 安装1.23.16版本的k3s工具

如果上述部分内容你已经有了,可以查看`init-config.sh`脚本,手动执行部分命令。

!!!!!!文件后缀说明!!!!!!

+ `online`: 在线安装,需要外网环境

+ `offline`: 离线安装。

每台机器都导入k3s环境用到的镜像(包括master和node)

```shell

将 k3s 离线镜像导入到机器

sudo mkdir -p /var/lib/rancher/k3s/agent/images/

sudo cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

sudo cp ./k3s /usr/local/bin/k3s

sudo chmod +x /usr/local/bin/k3s

二、初始化你的 k3s 机器(master) 离线安装板

1. 修改 `config.yaml`文件,为你自己的配置

2. master节点的机器上执行:

安装k3s

sudo  ./install-master_offline.sh

导入插件用到的镜像

sudo ./load_images.sh

导入 向日葵镜像。`docker load -i` 用k3s的命令 `k3s ctr image import` 代替

复制秘钥到当前账号

mkdir -p $HOME/.kube

sudo cp -i /etc/rancher/k3s/k3s.yaml $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 安装web控制面板,这里使用的是Kuboard。

如果kubectl不存在。则用 `k3s kubectl` 来代替 kubectl

kubectl apply -f kuboard-v3.yaml

> 如果 `kubectl get pod -A` 看到有 kuboard-agent 的pod无法imagepull而报错。

> 你需要 `kubectl edit deployment -n kuboard kuboard-agent`

> 将 `imagePullPolicy` 从 `Always` 改成 `IfNotPresent`

> 你需要 `kubectl edit deployment -n kuboard kuboard-agent`

> 将 `imagePullPolicy` 从 `Always` 改成 `IfNotPresent`

安装完成后,进入 http://master_ip:30080 进入管理页面 账号 `admin`。密码 `Kuboard123`。

4. 安装ingress(1.3.0),这里有两种方式安装,二选一:

   1. hostport。会占用本机的80和443端口。如果本机不需要nginx或者nginx配置成其他端口,可以使用。

kubectl apply -f ingress_hostport.yaml

   2. nodeport。会随机生成两个端口,分别代表http和https端口。不会占用本机的80和443。

kubectl apply -f ingress_nodeport.yaml

   > 安装完成后,执行 `kubectl get svc -n ingress-nginx` 可以看到 80和443分别映射出来的端口。

   > 输入 `kubectl get pod -n ingress-nginx` 查看ingress的安装进度。等所有pod都ok了,就可以了。

   #### 卸载说明

   > `kubectl delete -f ingress_hostport.yaml` 或者  `kubectl delete -f ingress_nodeport.yaml` 填你安装的时候选择的方式。

三、初始化你的 k3s (node节点)机器

> 镜像导入流程和 master一致

1. 修改`install-node_offline.sh` 文件,`K3S_URL`的地址为你的 master的对应地址。

2. 执行`sudo ./install-node_offline.sh` 文件

3. 导入插件镜像 `sudo ./load_images.sh`

4. 因为导入镜像需要依赖k3s。因此这里开始导入 向日葵镜像. `docker load -i` 用k3s的命令 `k3s ctr image import` 代替

四、 卸载删除你的k3s服务

1.

`sudo k3s-killall.sh`

2.

`sudo k3s-uninstall.sh` (for master) or `sudo k3s-agent-uninstall.sh` (for node)


 

五、 关于ingress

进入到 ingress-nginx命名空间。

推荐使用hostport方式安装。如果你有2台机器,那么请将`ingress-nginx-controller`的副本数调整为2。

如果你是5台设备,对应副本数调整为5.确保每台机器上都运行一个`ingress-nginx-controller`。

六、 FAQ  一些简单问题解答

+ 遇到 'commond not found'、`invalid option 2: set: -` 这类问题

+ 一般是你的sh文件出问题了。尤其是windows下打开过。需要将他们从dos格式转成unix格式。尤其是 `k3s.sh`文件

  + 以下 awk 命令将 DOS 文件 windows.txt 转换为 Unix 格式文件 unix.txt。

    awk '{ sub("\r$", ""); print }' windows.txt > unix.txt

1.自己新建的xxx.sh文件,创建/复制 完成后,记得 `chmod+x xxx.sh` 赋予其执行权限。

安装完环境后,用 `kubectl get pod -A` 看看所有的pod是否正常运行。只有complet和running的是属于正常的。

2.用 `kubectl get node` 查看所有 节点是否正常

kubectl get node

 `cat /run/systemd/resolve/resolv.conf` 看看服务器的dns是否配置正常。如果缺失了dns配置

 改  `/etc/systemd/resolved.conf`

    #DNS=

    改成 DNS=119.29.29.29

    DNS=119.29.29.29

或者改成对应的内网dns地址。

改完后 `sudo systemctl restart systemd-resolved.service` 使其生效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值