6个工具帮助你在Windows上轻松运行Kubernetes
2022/1/10 13:03:33
本文主要是介绍6个工具帮助你在Windows上轻松运行Kubernetes,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Kubernetes 主要是一种 Linux 技术,因此在 Linux 上运行它是相当简单的。但 Windows 上的开发人员,可不可以在 Win 上运行 Kubernetes?
答案是肯定的,但需要满足一些条件。
本文将介绍开发人员在 Windows 上顺利运行 Kubernetes 的六种不同的工具和技巧。
Windows 上运行 Kubernetes 有何不同?
在深入研究细节之前,让我们讨论一下究竟是什么让在 Windows 上运行 Kubernetes 集群成为一项挑战。
当我们谈论容器时,大多数时候我们指的是 Linux 容器。您通常会在 Linux 主机上运行 Kubernetes 集群。但在某些情况下,您可能会选择在Windows上运行工作负载。
在这些情况下,您可以在 Windows 主机上运行 Kubernetes 集群,但您应该注意一个限制:
Kubernetes 控制平面只能运行 Linux 主机。
您的工作节点可以在 Windows 主机上运行,但您需要在 Windows 机器上有一台 Linux 主机才能无缝运行 Kubernetes。
可以使用不同的方式在 Windows 主机上创建 Linux 虚拟机。例如,可以使用虚拟机或WSL(Linux 的 Windows 子系统)。
在 Windows 上运行 Kubernetes 的工具和技巧
既然知道自己所面临的是什么,那么让我们深入了解可以帮助开发人员在 Windows 上顺利运行 Kubernetes 的工具和技术。
1. 带有 WSL 的原生 Linux 命令
WSL允许您在 Windows 上运行本机 Linux 命令,而无需设置虚拟机。WSL 是 Microsoft 在 Windows 中引入的开创性功能,它使开发人员的生活变得轻松。
在为 Kubernetes 开发云原生应用程序时,使用 Windows 进行本地开发可能是一个障碍。如上面提到的,Kubernetes 控制平面需要一个 Linux 主机;WSL 通过为您提供一些核心 Linux 功能来帮助您在 Windows 上本地运行 Kubernetes。
要在 Windows 上安装 WSL,需要 Windows 10 以上,按 Win+R,然后键入winver
并选择OK,来验证版本。
然后可以使用wsl-install
命令安装 WSL。较旧的 Windows 版本可能不支持此命令。要解决它,请按照官方文档中提到的安装步骤进行操作。
正常情况下,该wsl-install
命令足以在 Windows 上启动和运行 WSL。它负责下载最新的 Linux 内核,将 WSL 2 设置为默认值,并为您安装 Linux 发行版。
或者,也可以从Windows 商店
下载来更改默认的 Linux 发行版。在 Microsoft Store 中,可以搜索 WSL 并从可用的 Linux 发行版中选择一个,例如 Ubuntu、Debian 或 Kali Linux。
第一次启动新安装的 Linux 时,将打开一个控制台窗口,需要为新的 Linux 创建帐户和密码:
2. Windows 上的 Docker Desktop
Windows 上的 Docker Desktop 提供了在 Windows 上创建单节点 Kubernetes 集群的选项。
以下是 Windows 上 Docker Desktop 的前提条件:
- Windows 10,更新到版本 2004、Build 1903 或更高版本
- 使打开或关闭 Windows 功能 验证 WSL 是否已启用。确保Windows Subsystem for Linux功能已打开:
或者,要在 Windows 上启用 WSL,也可以用管理员身份在 PowerShell 上运行该命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
虽然安装在Windows桌面Ubuntu,可以选择WSL2或Hyper-V创建Linux虚拟机。
建议使用基于WSL2引擎获得更好的性能。
Docker 启动运行后,通过导航到Settings 启用 Kubernetes 集群。单击边栏中的Kubernetes,然后选中启用 Kubernetes。单击应用并重新启动。
应该在屏幕底部看到:
- Docker Running
- Kubernetes Running
不必单独安装kubectl
即可与 Kubernetes 集群交互,它由 Docker Desktop 本身负责。通过kubectl
在 Windows Powershell 中运行以下命令来验证安装和设置:
PS C:\Users\ac> kubectl get all NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2m36s PS C:\Users\ac> kubectl get node NAME STATUS ROLES AGE VERSION docker-desktop Ready control-plane,master 3m12s v1.21.5
到此,您可以开始将应用程序部署到在 Windows 上运行的本地 Kubernetes 集群。
3.Rancher Desktop
Rancher Desktop是一个用于 Kubernetes 和容器管理的开源桌面应用程序,支持 MacOS 和 Windows。
安装很简单,下载并运行setup.exe
,你需要选择Kubernetes版本:
Docker Desktop 不支持选择 Kubernetes 版本
选择 Kubernetes 版本后,应该会看到以下内容。它将为您下载特定版本。侧边栏中有许多选项(即 Kubernetes 设置、Images等):
还可以通过导航到Kubernetes 设置再次选择不同的 Kubernetes 版本:
除了运行本地 Kubernetes 集群外,您还可以使用 Rancher Desktop 构建、推送和拉取镜像。
4. kind
另一个用于在本地运行它的 Kubernetes SIG 项目,kind
是Docker 中 Kubernetes 的缩写。您可以将 Kubernetes 作为 Docker 容器运行,而不是生成 VM。kind
相比minikube
,启动时间更快。
由于kind
将 Kubernetes 集群作为 Docker 容器运行,因此需要在机器上安装 Docker。在 Windows 上,您可以使用Chocolatey包管理器安装。
如果您还没有安装 Docker,kind
也会为您安装docker-desktop
。
可以运行choco install kind -y
命令来安装它。运行命令后,应该会看到以下输出:
PS C:\WINDOWS\system32> choco install kind -y Chocolatey v0.10.15 Installing the following packages: kind By installing you accept licenses for the packages. Progress: Downloading kind 0.11.1... 100% kind v0.11.1 [Approved] kind package files install completed. Performing other installation steps. Downloading kind 64 bit from 'https://github.com/kubernetes-sigs/kind/releases/download/v0.11.1/kind-windows-amd64' Progress: 100% - Completed download of C:\ProgramData\chocolatey\lib\kind\kind.exe (6.58 MB). Download of kind.exe (6.58 MB) completed. Hashes match. ShimGen has successfully created a shim for kind.exe The install of kind was successful.
您可以运行kind --version
命令验证。
现在您可以使用kind create cluster
命令创建本地 Kubernetes:
PS C:\WINDOWS\system32> kind create cluster Creating cluster "kind" ... • Ensuring node image (kindest/node:v1.21.1) 🖼 ... ✓ Ensuring node image (kindest/node:v1.21.1) 🖼 • Preparing nodes 📦 ... ✓ Preparing nodes 📦 • Writing configuration 📜 ... ✓ Writing configuration 📜 • Starting control-plane 🕹️ ... ✓ Starting control-plane 🕹️ • Installing CNI 🔌 ... ✓ Installing CNI 🔌 • Installing StorageClass 💾 ... ✓ Installing StorageClass 💾 Set kubectl context to "kind-kind" You can now use your cluster with: kubectl cluster-info --context kind-kind Thanks for using kind! 😊
PS C:\WINDOWS\system32> kubectl get nodes NAME STATUS ROLES AGE VERSION kind-control-plane Ready control-plane,master 27m v1.21.1
kind
至少需要 8 GB 的 RAM 才能顺利运行。使用该以下命令:
`kind load docker-image my-image:latest`
您可以直接将Image load
到集群中,而无需将其推送到Registry。
5.minikube
minikube是运行本地 Kubernetes 集群最流行的选项,原因如下:
- 它可以部署在 VM、裸机或 Docker 容器上
- 它支持不同的容器运行时(Docker、containerd 等)
- 它对 Kubernetes 仪表板和负载均衡提供开箱即用的支持
- 它支持各种 VM 驱动
您可以直接下载并运行.exe
,或者使用像 Chocolatey 包管理器来安装。
可以运行choco install minikube
命令来安装:
PS C:\WINDOWS\system32> choco install minikube Chocolatey v0.10.15 Installing the following packages: minikube By installing you accept licenses for the packages. Progress: Downloading kubernetes-cli 1.22.2... 100% Progress: Downloading Minikube 1.23.2... 100% ................. Minikube v1.23.2 [Approved] minikube package files install completed. Performing other installation steps. ShimGen has successfully created a shim for minikube.exe The install of minikube was successful.
现在运行minikube start
命令来启动本地 Kubernetes 集群。
PS C:\WINDOWS\system32> minikube start --driver=docker * minikube v1.23.2 on Microsoft Windows 10 Pro 10.0.18363 Build 18363 * Using the docker driver based on user configuration * Starting control plane node minikube in cluster minikube * Pulling base image ... > gcr.io/k8s-minikube/kicbase: 355.40 MiB / 355.40 MiB 100.00% 3.32 MiB p/ * Creating docker container (CPUs=2, Memory=2200MB) ... * Preparing Kubernetes v1.22.2 on Docker 20.10.8 ... - 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 * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
PS C:\WINDOWS\system32> kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 7m57s v1.22.2
现在您可以开始将应用程序部署到 minikube。
6. Lens
Lens是适用于 macOS、Windows 和 Linux 的开源桌面应用程序,可管理 Kubernetes 集群。
您可以在此处下载 Windows 版本,并使用它来查看和管理 Kubernetes 集群的状态。它提供了管理多集群、支持各种 Kubernetes 发行版、轻松调试以及支持管理 Helm Charts 等功能。
安装完成后,应该会看到以下内容。 Lens IDE 自动检测 kubeconfig 文件并将它添加到 Lens 目录中:
在下图中,请注意在Catalog > Categories > Clusters 下,列出了两个本地 Kubernetes 集群:
- docker-desktop
- rancher-desktop
Lens IDE 从 kubeconfig 文件中找出了这些信息。接下来,您将连接到rancher-desktop
Kubernetes 集群。
连接到rancher-desktop
本地 Kubernetes 集群后,您会看到一些Pod、Deployment等工作负载运行在kube-system命名空间
。
Lens IDE 的另一个重要功能是您只需单击即可安装 Helm Charts。Lens IDE 将在 Apps 部分显示已配置的 Helm 存储库(默认配置为 Bitnami)中所有Charts。
以下显示了的是 NGINX:
要安装Chart,只需选择它并单击 安装。
结论
Linux 的 Windows 子系统有助于弥合 Windows 和 Linux 之间的差距。使用 Docker Desktop、minikube、kind 和 Rancher Desktop 等工具,在 Windows 本地运行 Kubernetes 集群仍然是一种不错的体验。
在 Win上监控方案 也可以选择Prometheus + exporter方案,这些都可以轻松运行在 Win 上。
使用这些工具,在 Windows 上开发和测试 Kubernetes 应用程序应该也会变得简单。
作者简洁
作者:小碗汤,一位热爱、认真写作的小伙,专注于写go语言、docker、kubernetes、java等开发、运维知识等提升硬实力的文章,期待你的关注。转载说明:务必注明来源
这篇关于6个工具帮助你在Windows上轻松运行Kubernetes的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在Kubernetes (k8s) 中搭建三台 Nginx 服务器怎么实现?-icode9专业技术文章分享
- 2024-11-05基于Kubernetes的自定义AWS云平台搭建指南
- 2024-11-05基于Kubernetes Gateway API的现代流量管理方案
- 2024-11-05在Kubernetes上部署你的第一个应用:Nginx服务器
- 2024-11-05利用拓扑感知路由控制Kubernetes中的流量
- 2024-11-05Kubernetes中的层次命名空间:更灵活的资源管理方案
- 2024-11-055分钟上手 Kubernetes:精简实用的 Kubectl 命令速查宝典!
- 2024-10-30K8s 容器的定向调度与亲和性
- 2024-10-28云原生周刊:K8s未来三大发展方向 丨2024.10.28
- 2024-10-25亚马逊弹性Kubernetes服务(EKS)实战:轻松搭建Kubernetes平台