温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何离线部署k3s

发布时间:2020-06-06 15:28:34 来源:亿速云 阅读:572 作者:Leah 栏目:系统运维

这篇文章给大家分享的是离线部署k3s的详细教程,相信大部分人都还不知道怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

部署环境: 

系统:   ubuntu 16.04
组件:   docker-ce18.06    (请提前安装,如果不是docker的,k3s会提供containerd的方式,只是操作没docker方便,这里以docker为示例)

一、下载离线包(放在同一目录)
1.所有的container images
https://github.com/rancher/k3s/releases/download/v1.17.0%2Bk3s.1/k3s-airgap-images-amd64.tar

2.主要的二进制文件k3s
https://github.com/rancher/k3s/releases/download/v1.17.0%2Bk3s.1/k3s

3.下载官方提供的install.sh
https://github.com/rancher/k3s/blob/master/install.sh

二、部署
1.部署master
主要添加跳过镜像下载的参数:
export INSTALL_K3S_SKIP_DOWNLOAD=true

服务端脚本:

#/bin/bash
set -e
sudo cp k3s /usr/local/bin/
#use docker
sudo docker load < k3s-airgap-images-amd64.tar.gz
if [ $(cat install.sh|grep "export INSTALL_K3S_SKIP_DOWNLOAD=true"|wc -l) -eq 0 ];then
        sudo sed -i 3i"export INSTALL_K3S_SKIP_DOWNLOAD=true" install.sh
fi
sudo bash install.sh
#use docker
if [ $(cat /etc/systemd/system/k3s.service|grep server|grep docker|wc -l) -eq 0 ];then
        sudo sed -i 's?server?server --docker?g' /etc/systemd/system/k3s.service
fi 
sudo systemctl daemon-reload
sudo systemctl restart k3s
bash create-client.sh docker

2.生成agent脚本,添加token到服务的文件中

模板脚本client-tmp-docker.sh:

#!/bin/bash
set -e
cp -f k3s /usr/local/bin/
K3S_TOKEN="TOKENK3S-SERVER"
cat >k3s-agent.service<<EOF
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s \
    agent --server https://SEVERKESIP:6443 --token "${K3S_TOKEN}" --docker\

EOF
sudo bash install.sh agent
if [ ! -f /etc/systemd/system/k3s.service.env ];then
        touch /etc/systemd/system/k3s.service.env
fi
sudo docker load < k3s-airgap-images-amd64.tar.gz
sudo cp -f k3s-agent.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl restart k3s-agent.service
sudo systemctl enable k3s-agent.service

生成client.sh的脚本create-client.sh

#!/bin/bash
set -e
K3S_TOKEN=$(sudo cat /var/lib/rancher/k3s/server/node-token)
if [ "$1" != "docker" ];then
        cat client-tmp-containerd > client-k3s.sh
        sed -i "s?TOKENK3S-SERVER?$K3S_TOKEN?g" client-k3s.sh
        sed -i "s?SEVERKESIP?$(hostname -i)?g" client-k3s.sh
else
        cat client-tmp-docker > client-k3s.sh
        sed -i "s?TOKENK3S-SERVER?$K3S_TOKEN?g" client-k3s.sh
        sed -i "s?SEVERKESIP?$(hostname -i)?g" client-k3s.sh
fi

3.部署agent
复制client.sh、k3s、k3s-airgap-images-amd64.tar、install.sh到需要部署agent的主机上,一定要放在同一目录下

执行cd /path && bash client.sh

完成后验证:

如何离线部署k3s

如何离线部署k3s

看完这篇文章,你们学会离线部署k3s的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI