共计 3234 个字符,预计需要花费 9 分钟才能阅读完成。
本文丸趣 TV 小编为大家详细介绍“k3s 的快速部署和使用方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“k3s 的快速部署和使用方法是什么”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。
1、安装 k3s1.1 自动安装
主控节点安装
或者,直接安装,如下:
curl -sfL https://get.k3s.io | sh -
下载 k3s 的 install.sh 提供了安装到 systemd 或 openrc 的工具,将安装 k3s 为系统服务。
配置文件 kubeconfig 被写入到 /etc/rancher/k3s/k3s.yaml ,服务将会自动启动。 安装脚本还将安装 k3s 和其它工具,如 kubectl, crictl, k3s-killall.sh, 和 k3s-uninstall.sh, 可以运行下面命令来获取节点状态:
sudo kubectl get nodes
K3S_TOKEN 被创建在主服务器 /var/lib/rancher/k3s/server/node-token 。
⚠️部署完了,但是服务不可用。如下:
我的试验环境是 Ubuntu 19.10,下次用 raspbian 试一下看。
ubuntu@ubuntu:~$ sudo kubectl cluster-info
To further debug and diagnose cluster problems, use kubectl cluster-info dump .
The connection to the server 127.0.0.1:6443 was refused - did you specify the right host or port?
工作节点安装
如果在节点上安装 k3s,需要传递 K3S_URL 和 K3S_TOKEN 或者 K3S_CLUSTER_SECRET 作为环境变量。例如:
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
1.2 手动安装
下载 k3s – 最新版本, x86_64, ARMv7 和 ARM64 都可以支持。
运行服务器:
sudo k3s server
# Kubeconfig is written to /etc/rancher/k3s/k3s.yaml
sudo k3s kubectl get node
# On a different node run the below. NODE_TOKEN comes from /var/lib/rancher/k3s/server/node-token
# on your server
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}
1.3 高可用模式
从 v1.0.0 开始,K3s 预览性支持高可用 control plane,不需要外部的数据库。这意味着不需要管理外部的 etcd 或者 SQL datastore 来提供高可靠的生产级安装。该特征还是体验状态,我们希望将来能够作为 HA K3s clusters 的主要架构。
该架构通过嵌入 dqlite database 到 K3s server 进程内实现。DQLite 即 “distributed SQLite.”按照 https://dqlite.io 的说法,是 “a fast, embedded, persistent SQL database with Raft consensus that is perfect for fault-tolerant IoT and Edge devices.”这非常适合 K3s。
让 K3s 运行在该模式,需要服务器节点为奇数,建议从三个节点开始。
为了开始,首先启动 server node,采用 cluster-init 参数来启用 clustering 和 token,将被用于共享 secret 使其它服务器节点能够加入集群。
K3S_TOKEN=SECRET k3s server --cluster-init
启动第一个服务器后,添加第 2 / 3 个服务器进来,需要 shared secret:
K3S_TOKEN=SECRET k3s server --server https:// ip or hostname of server1 :6443
现在有了一个高可用 control plane 服务,添加其它 worker nodes 到集群,跟添加单个服务器集群一样。
参考:https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/
2、使用 k3s
该 kubeconfig file 用于配制对 Kubernetes cluster 集群的访问,需要正确滴设置,能够访问 Kubernetes API,如 kubectl 来安装应用以及支持 Helm。可以设置 kubeconfig 的方法包括环境变量 KUBECONFIG 来对 kubectl 和 helm 进行支持。例如:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl get pods --all-namespaces
helm ls --all-namespaces
或者在每个命令中指示 kubeconfig 文件的位置。
kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml get pods --all-namespaces
helm --kubeconfig /etc/rancher/k3s/k3s.yaml ls --all-namespaces
集群外通过 kubectl 访问
复制 /etc/rancher/k3s/k3s.yaml 到你的机器到 ~/.kube/config. 然后替换“localhost”为 IP 或者 K3s server 的名称。kubectl 现在能够管理所制定的 K3s cluster。
3、k3s 升级
可以通过安装脚本来升级 K3s 或者手动安装新的二进制版本。
⚠️注意:升级时首先升级 server nodes,然后升级其它工作节点。
通过安装脚本升级 K3s
从老的版本升级到新的 K3s,重新运行安装脚本即可,例如:
curl -sfL https://get.k3s.io | sh -
升级到制定版本,使用下面的命令(其中 vX.Y.Z 为指定的版本号):
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=vX.Y.Z-rc1 sh -
手动升级 K3s(Using the Binary)
手动升级 K3s:
下载想要的 K3s 版本,从这里:releases
安装到合适的位置 (一般是 /usr/local/bin/k3s)
停止老版本。
启动新版本。
重启 K3s
重启 K3s 支持 systemd 和 openrc。
手动重启 systemd 使用:
sudo systemctl restart k3s
手动重启 openrc 使用:
sudo service k3s restart
4、构建 arm 版镜像
arm 版镜像的 CPU 指令集与 x86 不同,因此容器不能交叉运行到异构硬件环境(与虚拟机不太一样,虚拟机可以提供指令集模拟)。
但是,因为容器引擎提供了统一的存储系统,arm 镜像和 x86 镜像可以使用同一个容器镜像仓库,可以通过内置的 tag 来标识即可。使用时必须选择相应的镜像版本,也可以使用同一个 Dockerfile 打包出多种架构可用的容器镜像版本。
参考:
Docker Desktop 构建 Multi-Arch 的 arm 容器镜像
读到这里,这篇“k3s 的快速部署和使用方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。