在 Rocky Linux 9/AlmaLinux 9 上安装和使用 k3d在 Rocky Linux 9/AlmaLinux 9 上安装和使用 k3d在 Rocky Linux 9/AlmaLinux 9 上安装和使用 k3d在 Rocky Linux 9/AlmaLinux 9 上安装和使用 k3d
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Rocky Linux 9/AlmaLinux 9 上安装和使用 k3d

发表 admin at 2025年2月28日
类别
  • 未分类
标签

如果您一直在思考一个简单的解决方案,可以帮助您快速设置 Kubernetes 集群来测试您的应用程序,而无需设置具有三个或更多节点的完整集群,那么您的幸运之星已经闪耀。有一个名为 k3d 的应用程序,我们将向您展示如何轻松地将其安装在 Rocky /AlmaLinux 机器上。在我们开始游泳之前,让我们做一些自我介绍,以便我们在一起潜入泳池时可以叫出我们的名字。

那么k3d是什么?

为了全面了解 k3d,我们首先要介绍它所依赖的其他东西,称为 k3s。因此,K3s 是 Rancher 创建的经过认证的 Kubernetes 发行版,其占用空间轻,易于安装、部署和管理。 Rancher 通过从 Kubernetes 主源代码中删除超过 30 亿行代码,使 K3 变得轻量级。经过修剪的源代码使 k3s 可以拥有更少的依赖项、云提供商集成、附加组件以及安装和运行 Kubernetes 并非绝对必需的其他组件。我们希望 k3s 现在已经清楚了。现在让我们进入 K3d 的核心业务。

K3d 是一个轻量级包装器,用于在 Docker 中运行 K3s(Rancher Lab 的最小 Kubernetes 发行版)。 K3d 使得在 Docker 中创建单节点和多节点 k3s 集群变得非常容易,例如,用于 Kubernetes 上的本地开发。好的!现在我们在同一个泳池里游泳。我们现在可以继续在 Rocky Linux 9/AlmaLinux 9 机器中进行设置。

要求

在开始之前,我们必须确保我们的服务器满足以下条件:

  • kubectl 与 Kubernetes 集群交互
  • Docker 完全能够使用 k3d

    • 注意:k3d v5.x.x 至少需要 Docker v20.10.5 (runc >= v1.0.0-rc93) 才能正常工作

第1步:安装Docker

K3d 完全依赖于 docker,在这一步中,我们需要对其进行设置并确保其顺利运行。幸运的是,我们已经制作了一份指南来帮助我们进行设置。请参阅如何在 Linux 上安装 Docker 指南。

第2步:安装kubectl和其他包

在安装之前,我们需要一些软件包来帮助我们获取、编辑和操作文件。运行以下命令来安装所有这些必需的软件包:

sudo def install -y vim curl wget

为了与我们将要创建的集群进行交互,我们需要 kubectl 包。通过运行以下命令来安装它:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

确认安装的版本:

kubectl version --output=yaml

您还可以通过运行以下命令使用 dnf 包管理器安装 kubectl:

添加 Kubernetes 存储库:

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

然后进行安装

sudo def install -y kubectl

您还可以确认安装的版本:

kubectl version --output=yaml

您应该看到类似以下内容的输出:

clientVersion:
  buildDate: "2022-11-09T13:36:36Z"
  compiler: gc
  gitCommit: 872a965c6c6526caa949f0c6ac028ef7aff3fb78
  gitTreeState: clean
  gitVersion: v1.25.4
  goVersion: go1.19.3
  major: "1"
  minor: "25"
  platform: linux/amd64
kustomizeVersion: v4.5.7

步骤3:启用ip_tables模块

K3d 附带 traefik,它需要 iptables 来启用一些路由。为了使其动作顺利,我们需要启用“ip_tables”模块。运行以下命令:

sudo modprobe ip_tables
echo 'ip_tables' | sudo tee -a /etc/modules

步骤 4:在 Rocky Linux 9/AlmaLinux 9 上安装 k3d

现在我们正处于最有趣的部分,我们将看到 k3d 的实际应用。在此之前,我们将其安装在我们的服务器中,如下所示

wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

您将看到与此类似的输出:

Preparing to install k3d into /usr/local/bin
k3d installed into /usr/local/bin/k3d
Run 'k3d --help' to see what you can do with it.

步骤5:创建单个服务器节点的集群

为了展示 k3d 的强大功能,我们将以非常简单的方式创建一个单节点集群。您只需运行以下命令:

k3d cluster create geekscluster

创建集群时您将看到以下内容

INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-geekscluster'
INFO[0000] Created image volume k3d-geekscluster-images
INFO[0000] Starting new tools node...
INFO[0000] Pulling image 'ghcr.io/k3d-io/k3d-tools:5.4.6'
INFO[0001] Creating node 'k3d-geekscluster-server-0'
INFO[0002] Starting Node 'k3d-geekscluster-tools'
INFO[0002] Pulling image 'docker.io/rancher/k3s:v1.24.4-k3s1'
INFO[0007] Creating LoadBalancer 'k3d-geekscluster-serverlb'
INFO[0008] Pulling image 'ghcr.io/k3d-io/k3d-proxy:5.4.6'
INFO[0010] Using the k3d-tools node to gather environment information
INFO[0010] HostIP: using network gateway 172.18.0.1 address
INFO[0010] Starting cluster 'geekscluster'
INFO[0010] Starting servers...
INFO[0010] Starting Node 'k3d-geekscluster-server-0'
INFO[0014] All agents already running.
INFO[0014] Starting helpers...
INFO[0014] Starting Node 'k3d-geekscluster-serverlb'
INFO[0021] Injecting records for hostAliases (incl. host.k3d.internal) and for 2 network members into CoreDNS configmap...
INFO[0023] Cluster 'geekscluster' created successfully!
INFO[0023] You can now use it like this:
kubectl cluster-info

这真是太棒了!

它将自动在“~/.kube/config”创建一个 KubeConfig 文件,因此您可以立即开始通过“kubectl”命令与集群交互。那么让我们检查一下我们的集群信息,如下所示:

$ kubectl cluster-info
Kubernetes control plane is running at https://0.0.0.0:33701
CoreDNS is running at https://0.0.0.0:33701/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://0.0.0.0:33701/api/v1/namespaces/kube-system/services/https:metrics-server:https/proxy

让我们查看 pod

$ kubectl get pods -n kube-system
NAME                                                     READY   STATUS      RESTARTS   AGE
coredns-b96499967-f5wfx                         1/1     Running         0             10m
local-path-provisioner-7b7dc8d6f5-brgcw   1/1     Running          0             10m
helm-install-traefik-crd-jfxv9                     0/1     Completed      0             10m
helm-install-traefik-lvn64                          0/1     Completed      1             10m
metrics-server-668d979685-mdxn2           1/1     Running          0             10m
traefik-7cd4fcff68-6kqm5                          1/1     Running          0             10m
svclb-traefik-4c2d85da-6t7g7                    2/2     Running          0             7s

现在您已准备好部署应用程序以在本地测试它们或用它进行各种有趣的恶作剧。玩得开心又狂野!

最后的评论

通过以较低的计算资源占用量运行本地 Kubernetes,您现在可以在进入生产工作负载中的多节点高可用集群之前学习并利用它提供的功能。祝你在冒险中度过一段美好的时光。

有关 Kubernetes 主题的更多文章。

  • 使用 Kubeshark 查看和分析 Kubernetes API 流量
  • 如何使用 Kubevious 管理 Kubernetes 集群
  • 如何使用 k3sup 部署高可用 Kubernetes 集群
  • 将 NFS 配置为 Kubernetes 持久卷存储
©2015-2025 Norria support@norria.com