如何在所有 Linux 发行版上安装 Kubernetes
Kubernetes 是容器编排软件,允许我们跨任意数量的节点系统部署、管理和扩展容器化应用程序。它是一项强大的开源技术,可以更高效地大规模运行应用程序,并取代直接在操作系统或虚拟机中运行应用程序的传统方式。 Kubernetes 集群还引入了自我修复、负载平衡以及通过单个命令提示符管理数百或数千个容器化应用程序的方法。
在本教程中,我们将学习如何在所有主要 Linux 发行版上安装 Kubernetes。这并不像安装大多数应用程序那么简单,因为官方存储库通常不包含所有所需的软件。安装 Docker(或其他一些容器化层)、禁用交换并配置一些其他设置也很重要。我们将引导您完成以下所有内容。
在本教程中您将学习:
如何在所有主要 Linux 发行版上安装 Kubernetes (kubeadm)
如何安装 Docker 和 kubectl
如何禁用交换空间
如何启动并启用 Docker 和 kubelet 服务
Kubernetes 安装类型
在 Linux 系统上安装 Kubernetes 的直接说明并不是那么简单,因为有很多不同的方式来运行它。我们至少可以使用四种不同的技术来开始使用 Kubernetes:
库贝德姆
迷你库贝
种类
K3s
每个都有自己的利基、优点和缺点。我们在本教程中将重点关注的是 Kubeadm,因为它是 Kubernetes 的生产就绪实现。它不太适合绝对的初学者,因此如果您在运行它时遇到困难,您可以求助于更简单的技术,例如 Minikube。
我们的另一个选择是选择容器化技术。 Kubernetes 需要一个才能运行。我们可以选择容器运行时,例如:
码头工人
容器d
CRI-O
就 Kubernetes 容器运行时而言,Docker 是迄今为止最受欢迎的选择,因此我们将在本教程中重点关注它。
我们还将单独安装 kubectl 等单独的技术。
在 Linux 上安装 Kubernetes (kubeadm)
在以下部分中选择您的 Linux 发行版,然后按照相应的说明进行操作。
Debian 和 Ubuntu
本节适用于 Linux 发行版,例如 Debian Linux、Ubuntu Linux 及其众多衍生发行版。
首先,禁用交换:
$ sudo swapoff -a
您还需要编辑
/etc/fstab
并注释交换行以在将来重新启动时禁用它。首先安装以下必备包:
$ sudo apt update $ sudo apt install docker.io apt-transport-https ca-certificates curl
将当前用户添加到 Docker 组:
$ sudo usermod -a -G docker $USER
Docker 完成安装后,使用以下命令启动服务并确保它在每次重新启动后自动启动:
$ sudo systemctl start docker $ sudo systemctl enable docker
下载以下签名密钥:
$ sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
将 Kubernetes 软件存储库添加到您的系统:
$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
然后,安装工具 kubelet、kubeadm 和 kubectl:
$ sudo apt update $ sudo apt install kubelet kubeadm kubectl
或者,我们可以将 Kubernetes 包标记为不由 apt 更新,直到我们手动尝试更新它们。这可确保您的集群永远不会因更新而中断,并且新版本不会破坏您当前的设置。
$ sudo apt-mark hold kubelet kubeadm kubectl
Fedora、红帽、CentOS、AlmaLinux、Rocky Linux
本节适用于 Red Hat Enterprise Linux、Fedora Linux 及其所有衍生发行版。
首先,禁用交换:
$ sudo swapoff -a
您还需要编辑
/etc/fstab
并注释交换行以在将来重新启动时禁用它。首先安装
dnf-plugins-core
软件包,以防您的系统上尚未安装该软件包。这将允许您管理您的 dnf 存储库并向其中添加官方 Docker 存储库。$ sudo dnf -y install dnf-plugins-core
接下来,使用以下命令将 Docker 存储库添加到您的系统。
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
在开始安装 Docker 之前,我们需要从系统中删除
podman
和buildah
软件包,因为它们与 Docker 冲突并会阻止其安装。$ sudo dnf remove podman buildah
现在,我们可以通过执行以下命令来安装所需的三个 Docker 软件包。
$ sudo dnf install docker-ce docker-ce-cli containerd.io
将当前用户添加到 Docker 组:
$ sudo usermod -a -G docker $USER
安装完成后,启动Docker服务,然后使其在系统重新启动时自动运行:
$ sudo systemctl start docker.service $ sudo systemctl start containerd.service $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
将 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 exclude=kubelet kubeadm kubectl EOF
通过将 SELinux 置于宽容模式来禁用它:
$ sudo setenforce 0 $ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
安装 kubelet、kubeadm 和 kubectl 软件包:
$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
指示 systemd 启动 kubelet 并使其在将来的系统启动时自动启动:
$ sudo systemctl enable kubelet $ sudo systemctl start kubelet
Arch Linux 和 Manjaro
本节适用于 Arch Linux、Manjaro Linux 及其衍生版本等 Linux 发行版。
首先,禁用交换:
$ sudo swapoff -a
您还需要编辑
/etc/fstab
并注释交换行以在将来重新启动时禁用它。首先安装 Docker(并且可以从 AUR 下载 Kubernetes):
$ sudo pacman -Syu $ sudo pacman -S docker yay devtools base-devel
将当前用户添加到 Docker 组:
$ sudo usermod -a -G docker $USER
安装完成后,启动 Docker 服务,然后使其在系统重新启动时运行:
$ sudo systemctl start docker.service $ sudo systemctl enable docker.service
现在我们可以使用 yay 从 AUR 下载 kubeadm、kubelet 和 kubectl:
$ yay -S kubeadm-bin kubelet-bin kubectl-bin
最后,启动 kubelet 服务,以便 Kubernetes 可以使用:
$ sudo systemctl start kubelet $ sudo systemctl enable kubelet
捕捉法
还可以使用 Snap 包管理器来安装所有必需的 Kubernetes 包。
使用 Snap 安装 Docker、kubeadm、kubectl 和 kubelet:
$ sudo snap install docker $ sudo snap install kubeadm kubectl kubelet --classic
将当前用户添加到 Docker 组:
$ sudo usermod -a -G docker $USER
并启动必要的服务:
$ sudo systemctl start docker $ sudo systemctl enable docker $ sudo systemctl start kubelet $ sudo systemctl enable kubelet
结束语
在本教程中,我们了解了如何在所有主要 Linux 发行版上安装 Kubernetes,包括通过 Snap 包管理器的通用方法。这些说明足以让您开始基础知识,其中包括 kubeadm 和 Docker 的安装。一旦这些服务启动并运行,您就可以继续加入节点、部署应用程序和扩展 Kubernetes 集群。