学堂 学堂 学堂公众号手机端

k3s的快速部署和使用方法是什么

lewis 1年前 (2024-04-04) 阅读数 5 #技术

本文小编为大家详细介绍“k3s的快速部署和使用方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“k3s的快速部署和使用方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1、安装k3s

1.1 自动安装

主控节点安装

或者,直接安装,如下:


curl-sfLhttps://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, 可以运行下面命令来获取节点状态:

sudokubectlgetnodes

K3S_TOKEN被创建在主服务器/var/lib/rancher/k3s/server/node-token

⚠️部署完了,但是服务不可用。如下:

我的试验环境是Ubuntu 19.10,下次用raspbian试一下看。

ubuntu@ubuntu:~$sudokubectlcluster-info

Tofurtherdebuganddiagnoseclusterproblems,use'kubectlcluster-infodump'.
Theconnectiontotheserver127.0.0.1:6443wasrefused-didyouspecifytherighthostorport?

工作节点安装

如果在节点上安装k3s,需要传递K3S_URLK3S_TOKEN或者K3S_CLUSTER_SECRET作为环境变量。例如:

curl-sfLhttps://get.k3s.io|K3S_URL=https://myserver:6443K3S_TOKEN=XXXsh-

1.2 手动安装

下载 k3s -最新版本, x86_64, ARMv7和ARM64都可以支持。

运行服务器:

sudok3sserver&

#Kubeconfigiswrittento/etc/rancher/k3s/k3s.yaml
sudok3skubectlgetnode

#Onadifferentnoderunthebelow.NODE_TOKENcomesfrom/var/lib/rancher/k3s/server/node-token
#onyourserver
sudok3sagent--serverhttps://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=SECRETk3sserver--cluster-init

启动第一个服务器后,添加第2/3个服务器进来,需要shared secret:

K3S_TOKEN=SECRETk3sserver--serverhttps://<iporhostnameofserver1>: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进行支持。例如:

exportKUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectlgetpods--all-namespaces
helmls--all-namespaces

或者在每个命令中指示 kubeconfig 文件的位置。

kubectl--kubeconfig/etc/rancher/k3s/k3s.yamlgetpods--all-namespaces
helm--kubeconfig/etc/rancher/k3s/k3s.yamlls--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-sfLhttps://get.k3s.io|sh-

升级到制定版本,使用下面的命令(其中vX.Y.Z为指定的版本号):

curl-sfLhttps://get.k3s.io|INSTALL_K3S_VERSION=vX.Y.Z-rc1sh-

手动升级K3s( Using the Binary)

手动升级 K3s:

下载想要的 K3s版本,从这里:releases

安装到合适的位置(一般是/usr/local/bin/k3s)

停止老版本。

启动新版本。

重启K3s

重启K3s支持 systemd 和openrc。

手动重启 systemd使用:

sudosystemctlrestartk3s

手动重启 openrc使用:

sudoservicek3srestart

4、构建arm版镜像

arm版镜像的CPU指令集与x86不同,因此容器不能交叉运行到异构硬件环境(与虚拟机不太一样,虚拟机可以提供指令集模拟)。

但是,因为容器引擎提供了统一的存储系统,arm镜像和x86镜像可以使用同一个容器镜像仓库,可以通过内置的tag来标识即可。使用时必须选择相应的镜像版本,也可以使用同一个Dockerfile打包出多种架构可用的容器镜像版本。

参考:

Docker Desktop构建Multi-Arch的arm容器镜像

读到这里,这篇“k3s的快速部署和使用方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注博信行业资讯频道。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门