wsl2开启k8s思路过程整理

博主在尝试在Windows的WSL2环境下配置Kubernetes,遇到了docker升级后无法启动的问题。通过切换到wsl2并手动更新内核,解决了内核限制。然后通过修改源码启用systemd,安装k8s的过程中遇到了脚本执行失败的问题,发现是由于缺少systemctl支持。最后成功在WSL2中安装并运行k8s,分享了整个过程中的难点和解决方案。
摘要由CSDN通过智能技术生成

前言

搞java的自学k8s,一堆配置各种问题。最早我直接使用docker desktop自带的k8s,问题是一次不小心升级后,就再也无法启动了。删除重装了好几次都没用。我就思考能不能通过wsl2 直接开启k8s,所以绕了很多弯路。
vmware16太折腾了,还有我忘记密码了opensuse这个后面再搞,直接能进入界面,但是终端好多命令需要输入密码,关键终端挺难用的。资源分配到少就卡,资源多了,占地方。需要经常切出鼠标在两个系统之间来回走,没有纯命令的wsl2流畅。

准备工作

wsl1的内核无法更新。捂脸😓,一度试图自己下载官网linux kernel

其实很早之前我就已经开启了wsl2,但是后面因为从应用商店下载的子系统会安装在C盘,实在感觉难受,就是用LXRUNOFFLINE 将linux安装到其他盘符。但是因为我是从本地应用商店删除了子系统,所以重新安装ubuntu20.02默认系统就被还原成wsl1了,也就是初始内核4.4.4 。wsl1的linux是阉割版的,也就是说功能有些缺陷。所以需要重新升级到wsl2,这样就能使用lxss自己管理的内核文件,实在是因为哪怕wsl2的linux也是不够完善的linux,无法使用systemctl命令,也就是说,在开启k8s集群的时候,就有各种问题。wsl2更新ubuntu子系统内核
在这里插入图片描述

需要注意的是,无论你在应用商店安装了几个linux子系统,他们使用的是同一个内核。证据就是我打开了centos和ubuntu两个子系统内核版本一致。

然后就是解决wsl2无法使用systemd和systemctl命令无法使用。
参考Enable systemd in WSL 2, 其实也出了一点错,你需要直接去文章链接的github自己修改版本信息。安装后,就可以通过 apt install 安装systemd和systemctl了。
原始地址
我是通过浏览器下载的可执行文件,不带后缀名的,修改文件为kind,放置在文章提示的位置。

开始安装k8s

我用谷歌搜了关键字 wsl2 k8s 有个工具microk8s,这个因为需要使用三方snap安装,被我放弃了
然后参考wsl2安装k8s
这篇文章我直接从安装k8s开始。前面的行不通。
在这里插入图片描述
文章包含的链接是我认为比较重要的步骤,我自己其实还参考了不少文章。

看着比较乱,因为大部分都是我走了弯路,我一开始就只打算在wsl2内首先开启docker,然后开启k8s,每次都是docker安装完后,k8s就是各种问题,普遍就是systemd和systemctl无法使用导致很多脚本执行失败。目前普遍思路就是k8s以docker容器的形式存在,以容器管理docker容器。 好像就是这么说吧。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值