保姆级教程!使用k3d实现K3s高可用!

你是否曾经想尝试使用K3s的高可用模式?但是苦于没有3个“备用节点”,或者没有设置相同数量的虚拟机所需的时间?那么k3d这个方案也许你十分需要噢!

如果你对k3d尚不了解,它的名字或许可以给你一个了解它的切入口:K3s in Docker。k3d是一个轻量级封装程序,用于在Docker中运行k3s。借助k3d,可以轻松在Docker内创建单节点或多节点的k3s集群,用于Kubernetes上的本地开发。

K3d允许你在短时间内启动k3s集群。此外,你可以快速学会其少量但十分有用的命令。K3d运行在Docker内,这意味着你可以扩展或减少节点而不需要进行多余的设置。在本文中,我们将介绍如何使用k3d设置单节点K3s集群以及如何使用k3d在高可用模式下设置k3s。

本文的两个主要目的是介绍k3d作为部署K3s集群的工具,以及展示K3s高可用性如何抵抗“节点退化(nodes degradation)”。而且,我们还将了解k3s默认在集群中部署了哪些组件。

前期准备

在操作系统(Linux、MacOS、Windows)方面,大家都有自己的偏好。所以在我们检查用于本篇文章的设置之前,仅有两个必要的要求:Docker和Linux shell。

如果你使用的系统是MacOS或者Windows,Docker Desktop是Dcoker的首选解决方案。对于Linux来说,你可以获取Docker engine以及CLIs,详细信息如下:

https://www.docker.com/products/docker-desktop

Linux shell、MacOS以及Linux都会有所涉及。对于Windows系统而言,最简单快捷的解决方案是WSL2,我们也会在demo中用到它。

以下是我们将会用到的设置:

OS:Windows 10 version 2004(build:19041)

OS 组件:虚拟化机器平台以及Linux的Windows子系统

安装步骤:

https://docs.microsoft.com/en-us/windows/wsl/install-win10

WLS2发行版:Ubuntu

Windows商店地址:

【可选】使用的控制台:Windows Terminal

Windows商店地址:

https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701

Step1:从安装开始

访问下方链接即可了解如何安装k3d:

在本文中,我们将以curl的方式安装。

请注意:直接从URL运行脚本存在很严重的安全问题。所以在运行任意脚本之前,确保源是项目的网站或git在线repository。

以下是安装步骤:

访问:

复制“curl“安装命令并且在你的terminal内运行它:

curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash

1.png

请注意:该截图显示了两个命令:

k3d version:提供已安装的k3d版本

k3d –help:列出可用于k3d的命令

现在k3d已经安装完成并且准备开始使用。

Step2:从单节点集群开始

在我们创建一个HA集群之前,让我们从单节点集群开始以理解命令(“grammar”)并且查看默认情况下k3d部署了什么。

首先,语法。在V3,k3d在命令的使用方式上做了很大的改变。我们不深入研究以前的命令是怎么做的,我们将使用V3的语法。

K3s遵循“名词+动词”的句法。首先指定我们要使用的东西(集群或节点),然后指定我们要应用的操作(create、delete、start、stop)。

创建一个单节点集群

我们将借助k3d使用默认值创建一个单节点集群:

**k3d cluster create
**

请注意:k3d cluster create命令的输出建议运行另一条命令来检查集群是否在运行并且可以访问:kubectl cluster-info

现在集群已经启动并且在运行啦!

窥视内部结构

我们还可以从不同的角度看看到底部署了什么。

让我们从头开始,看看K3s集群里面有什么(pods、服务、部署等):

kubectl get all --all-namespaces

3.webp


我们可以看到,除了Kubernetes服务外,当我们使用默认值时,K3s还部署了DNS、metrics和ingress(traefik)服务。

现在让我们从不同的视角查看节点。

首先,我们从集群的视角检查它:

kubectl get nodes --output wide


如我们所料,仅看到了一个节点。现在让我们从k3d的视角查看:

k3d node list

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfpsg.html