WSL,全称Windows Subsystem for Linux,是微软在Windows 10操作系统上开发的一种运行Linux应用程序的子系统。它允许用户在Windows系统中直接运行Linux命令行工具和应用程序,无需双重引导或虚拟机。
相比虚机,WSL提供了更加高效、轻量级、无缝、兼容的开发环境,可以帮助开发人员更加高效地完成开发工作。同时,WSL也不会占用过多的系统资源,这使得开发人员可以更加专注于开发任务而非系统维护。
k3s是一个轻量级的、易于安装和管理的Kubernetes发行版,由Rancher Labs开发。它专注于简化Kubernetes的部署和管理,适用于边缘计算、IoT和开发团队等场景,旨在提供更简单、更轻量、更易于使用的Kubernetes体验。
本文介绍如何在 WSL 上安装 k3s 从而让开发者可以更方便地学习、开发和部署 k8s应用。
前提条件
在使用本教程之前,开发者的电脑必须满足以下条件:
- Windows 10 build 大于 19041
- 已安装 WSL
- 熟悉 Linux 命令行
把 WSL 默认版本设置为 2
在安装完 WSL 后, WSL 的默认版本是 1。k3s 只能安装在 WSL 版本 2 上。请运行以下命令把 WSL 的默认版本设置为 2
wsl --set-default-version 2
这样我们新安装的 Linux 默认都会运行在 WSL 2 上。
安装 Ubuntu 22
k3s 需要最新的 Ubuntu 版本。我们可以通过微软应用商店安装。
打开微软应用商店,搜索 ubuntu,选择 Ubuntu 22 LTS 版本。如下图所示:
安装过程大概需要5-10分钟。安装结束后在开始菜单找到 ubuntu 22,启动它。启动后可以输入以下命令确认是否正在使用的 wsl 版本是 ubuntu 22.
cat /etc/os-release
你可以看到类似下面的结果:
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
安装 k3s
安装 k3s 的步骤比较简单。
- 从 github 下载最新的 k3s 版本
- 复制文件到 /usr/local/bin
- 把文件设置为可执行
下面的命令执行以上步骤:
wget https://github.com/k3s-io/k3s/releases/download/v1.26.3%2Bk3s1/k3s
mv k3s /usr/local/bin/
chmod u+x /usr/local/bin/k3s
k3s --version
注意以上命令可能需要 sudo。以下是执行了 k3s --version 以后可能看到的结果。
k3s version v1.26.3+k3s1 (01ea3ff2)
go version go1.19.7
k8s 和 iptables 配合的更好。执行以下命令把 ubuntu 的防火墙设置为 iptables.
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
检查 k3s 的配置情况
运行以下命令检查 k3s 的配置情况:
k3s check-config
得到类似于下面的结果
启动 k3s 服务
输入以下命令启动 k3s 服务
screen -d -m -L -Logfile /var/log/k3s.log /usr/local/bin/k3s server
可以使用下面的命令查看 k3s 服务的日志:
tail -F /var/log/k3s.log
如果想停止 k3s 服务可以输入以下命令,切换至 k3s 服务的对话,然后输入 ctl+c
screen -ls
screen -r #
选项:安装 helm
Helm是一个流行的开源软件包管理器,用于在Kubernetes中部署和管理应用程序。Helm的设计目的是简化Kubernetes应用程序的部署、更新和回滚过程。它使用称为“Chart”的打包格式来打包应用程序,并使用称为“Release”的概念来管理这些应用程序的部署。
安装好 k3s 以后,可以使用下面的步骤来安装 helm
- 下载最新版的 helm 安装包
使用下面的命令解压:
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
从文件夹中找到 helm 的二进制文件,使用下面的命令把它放到可执行文件夹下:
mv linux-amd64/helm /usr/local/bin/helm
输入以下命令就可以看到 helm 是否安装成功了。
helm version
总结
通过在 WSL 中安装 Ubuntu 22,然后执行 k3s 脚本,开发者可以在 Windows 上方便的开发和测试 Kubernetes 应用和服务。
参考文档
- https://www.jeffgeerling.com/blog/2022/quick-hello-world-http-deployment-testing-k3s-and-traefik
- https://boxofcables.dev/deploying-rancher-on-k3s-on-wsl2/