Kubernetes 是一个免费的开源平台,可让您自动部署、扩展和管理容器化应用程序。 它支持各种容器运行时,如 Docker、containerd、CRI-O 和 Kubernetes CRI(容器运行时接口)的任何实现。 Kubernetes 可自动执行多项与容器相关的任务,包括部署、推出、服务发现、存储配置、负载平衡、自动缩放等。
在这篇文章中,我们将向您展示如何在 Arch Linux 上安装 Kubernetes。
先决条件
- Your self Cloud Platform 上的全新 Arch Linux 服务器
- 在您的服务器上配置的根密码
- 云服务器至少需要 2 个 vCPU 和 2GB RAM
第 1 步 – 创建您自己的云服务器
首先,登录您的你自己的云服务器. 创建一个新服务器,选择 Arch Linux 作为操作系统,至少 2GB 内存。 通过 SSH 连接到您的云服务器,并使用页面顶部突出显示的凭据登录。
第 2 步 – 配置存储库
默认情况下,默认存储库在 Arch Linux 中已过时,因此您需要修改默认镜像列表。 您可以通过编辑 mirrorlist 配置文件来完成:
nano /etc/pacman.d/mirrorlist
删除所有行并添加以下行:
## Score: 0.7, United States Server = https://mirror.us.leaseweb.net/archlinux/$repo/os/$arch ## Score: 0.8, United States Server = https://lug.mtu.edu/archlinux/$repo/os/$arch Server = https://mirror.nl.leaseweb.net/archlinux/$repo/os/$arch ## Score: 0.9, United Kingdom Server = https://mirror.bytemark.co.uk/archlinux/$repo/os/$arch ## Score: 1.5, United Kingdom Server = https://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch Server = https://archlinux.dcc.fc.up.pt/$repo/os/$arch ## Score: 6.6, United States Server = https://mirror.cs.pitt.edu/archlinux/$repo/os/$arch ## Score: 6.7, United States Server = https://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch ## Score: 6.8, United States Server = https://ftp.osuosl.org/pub/archlinux/$repo/os/$arch ## Score: 7.1, India Server = https://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch ## Score: 10.1, United States Server = https://mirrors.xmission.com/archlinux/$repo/os/$arch
保存并关闭文件,然后使用以下命令更新所有包索引:
pacman -Syu
第 3 步 – 安装 Docker 引擎
Kubernetes 需要在您的服务器上安装 Docker 引擎。 如果没有安装,您可以使用以下命令安装它。
pacman -S docker
安装 Docker 后,使用以下命令启用 Docker 服务。
systemctl enable docker
接下来,重新启动系统以应用更改。
reboot
第 4 步 – 安装 Minikube
Minikube 提供了一种更简单的方法来部署 Kubernetes 集群以进行本地开发。 默认情况下,Minikube 包在 Arch Linux 默认存储库中可用。 您可以使用以下命令安装它。
pacman -S minikube
安装成功后,使用以下命令启动 Minikube。
minikube start --force
此命令将在您的服务器上设置本地 Kubernetes 集群。
? minikube v1.28.0 on Arch (kvm/amd64) ❗ minikube skips various validations when --force is supplied; this may lead to unexpected behavior ✨ Automatically selected the docker driver. Other choices: ssh, none ? The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force. ? If you are running minikube within a VM, consider using --driver=none: ? https://minikube.sigs.k8s.io/docs/reference/drivers/none/ ? Using Docker driver with root privileges ? Starting control plane node minikube in cluster minikube ? Pulling base image ... ? Downloading Kubernetes v1.25.3 preload ... > preloaded-images-k8s-v18-v1...: 385.44 MiB / 385.44 MiB 100.00% 40.76 M > gcr.io/k8s-minikube/kicbase: 386.27 MiB / 386.27 MiB 100.00% 26.76 MiB > gcr.io/k8s-minikube/kicbase: 0 B [________________________] ?% ? p/s 10s ? Creating docker container (CPUs=2, Memory=2200MB) ... ? Preparing Kubernetes v1.25.3 on Docker 20.10.20 ... ▪ Generating certificates and keys ... ▪ Booting up control plane ... ▪ Configuring RBAC rules ... ? Verifying Kubernetes components... ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5 ? Enabled addons: default-storageclass, storage-provisioner ? kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A' ? Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
第 5 步 – 验证 Kubernetes 集群
您现在可以使用以下命令验证 Kubernetes 集群。
minikube kubectl -- get pods -A
您应该得到以下输出。
> kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s > kubectl: 42.93 MiB / 42.93 MiB [------------] 100.00% 45.96 MiB p/s 1.1s NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-565d847f94-2dq5q 1/1 Running 0 54s kube-system etcd-minikube 1/1 Running 0 66s kube-system kube-apiserver-minikube 1/1 Running 0 67s kube-system kube-controller-manager-minikube 1/1 Running 0 66s kube-system kube-proxy-g7w2q 1/1 Running 0 54s kube-system kube-scheduler-minikube 1/1 Running 0 67s kube-system storage-provisioner 1/1 Running 1 (23s ago) 65s
要获取有关节点的信息,请使用以下命令。
minikube kubectl -- get nodes -A
您将获得以下输出。
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 109s v1.25.3
第 6 步 – 访问 Minikube 仪表板
默认情况下,Minikube 仪表板是禁用的,因此您需要先启用它。
运行以下命令以启用 Minikube 仪表板。
minikube dashboard
您现在可以使用以下命令检索 Minikube URL。
minikube dashboard --url
您应该会在以下输出中看到您的 Minikube URL。
? Verifying dashboard health ... ? Launching proxy ... ? Verifying proxy health ... https://127.0.0.1:38999/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Minikube 仪表板现已启用并侦听端口38999在本地主机上。 您只能从本地主机访问 Minikube 仪表板。 要从远程系统访问 Minikube 仪表板,您需要使用 SSH 端口转发方法。
登录到您的 Linux 桌面系统并使用以下命令转发您的 SSH 端口。
ssh -L 38999:127.0.0.1:38999 -fN [email protected]
系统将要求您提供服务器的根密码以启用 SSH 端口转发。
您现在可以打开 Web 浏览器并使用 URL 访问 Minikube 仪表板https://127.0.0.1:38999/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/。您应该会在以下屏幕上看到 Minikube 仪表板。
结论
在本教程中,我们介绍了如何在 Arch Linux 8 上使用 Minikube 安装 Kubernetes 集群。现在您可以按照本教程部署 Kubernetes 集群进行本地开发。 您也可以尝试在您自己托管的专用服务器上部署 Kubernetes!