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

本文介绍在Rocky Linux 9/AlmaLinux 9上安装和使用k3d的方法。K3d是在Docker中运行K3s(Rancher Lab的最小Kubernetes发行版)的轻量级包装器。K3d使得在Docker中创建单节点和多节点k3s集群非常容易,例如,用于Kubernetes上的本地开发。

安装和使用k3d

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

kubectl与Kubernetes集群交互。

Docker完全可以使用k3d。注意:k3d v5.x.x至少需要Docker v20.10.5 (runc >= v1.0.0-rc93)才能正常工作。

1、安装Docker

K3d完全取决于docker,在这一步中,我们将设置它并确保它运行平稳。

以下是在CentOS/Rocky Linux/AlmaLinux上安装Docker CE的方法。

卸载旧版本:

sudo yum remove docker docker-common docker-selinux docker-engine

安装所需的依赖项:

sudo yum -y install yum-utils device-mapper-persistent-data lvm2

设置稳定repo:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker CE:

sudo yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动并启用docker服务:

sudo systemctl start docker && sudo systemctl enable docker

将您的用户帐户添加到docker组:

sudo usermod -aG docker $USER

newgrp docker

检查服务状态:

systemctl status 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

再让我们看看pods:

$ kubectl get pods -n kube-system

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

至此,您已经准备好部署应用程序以在本地测试它们,或者使用它进行各种实用的操作。

栏目相关文章