WSL2 搭建 Rancher 开发环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL2 搭建 Rancher 开发环境相关的知识,希望对你有一定的参考价值。

参考技术A @author Fu Kai
@since 20211128

一、 安装 WSL2
二、 安装 Rancher-2.5.x
三、 配置容器镜像源
四、 添加主机静态路由
五、helloworld 案例

不多说
service docker start

安装 docker-compose

这里给出我的 docker-compose

启动要耗费一些时间,需要耐心

Docker 中安装 Rancher 默认使用的 K3s,K3s 是 K8s 的精简版,底层不是用 docker 而是用的 containerd,配置容器镜像源会和 docker 不同。

进入 rancher 容器
docker exec -it rancher-2.5.11 /bin/bash

vi /etc/rancher/k3s/registries.yaml

配置自己的阿里云 docker 镜像或者其它国内镜像

exit 退出 rancher 容器

docker restart rancher-2.5.11 重启 rancher 容器

默认情况下每次重启 WSL2 系统都会给 WSL2 重新分配 IP 地址,截止 20211128,WSL2 还不能固定 IP
现在有效的做法可以通过建立网络适配器固定 WSL2 的 IP

新建.bat 文件,写入下面两行后以 管理员 执行

其中 Ubuntu-20.04 是通过 cmd wsl --list 命令获得(发行版 Unbutu 升级后可能就不是 20.04 了)

主机 cmd 执行 ipconfig /all
执行后会在本机虚拟网卡 vEthernet (WSL) 中增加一个固定 IP 192.168.153.128

WSL2 执行 ifconfig
在 WSL2 中新增一块虚拟网卡 eth0:1 拥有固定 IP 192.168.153.129

上图 IP 172.25.32.1 不断变化,目前没办法固定,固定的是自定义的 192.168.153.128

主机 →WSL2: ping 192.168.153.129
WSL2→ 主机: ping 192.168.153.128

如上配置好后就可以通过 192.168.153.129 访问 WSL2 容器,如果 WSL2 中启动了一个映射 3306 端口的容器,则通过 192.168.153.129:3306 就可以直接访问到

但访问 Rancher 部署的应用就会有问题

部署好后 helloworld0 生成了随机端口 31928

鼠标悬浮在端口号上,发现跳转的 URI 是 172.172.172.14:31928

使用 Docker 部署的 Rancher 会使用 iptables 直接做端口的映射,即在 run 容器的时候不使用-p 指定端口映射也没关系,iptables 会直接映射这些端口
即,此例中 helloworld0 映射 31928 端口,我通过 172.172.172.14:31928 可以在 WSL2 环境直接访问到这个 helloworld0

说明使用 Rancher 部署的 helloworld0 没有问题

在 WSL2 中访问没问题了,那主机访问有没有问题呢?

这里会涉及到网络的知识, 172.172.172.14 与 192.168.153.129 属于 WSL2 的不同网段,访问 192.168.153.129 并不能访问到 172.172.172.14 ,属于跨网段,这时需要添加静态路由表自定义路由

首先
在 WSL2 中执行命令 iptables -P FORWARD ACCEPT (临时,重启后失效) 允许路由转发
(永久暂不知道如何配置)

然后
在主机管理员 cmd 执行 sc start RemoteAccess
然后执行 route add -P 172.172.0.0 mask 255.255.0.0 192.168.153.129

主机访问 172.172.0.0 这个网段的内容,指定下一跳为 192.168.153.129 ,再到 WSL2 中找到 172.172.172.14

ping 172.172.172.14 可以 ping 通

最后从网页访问可以访问到 rancher-helloworld 页面

[1] wsl2 中 docker 内部网络的端口转发. https://www.yht7.com/news/96591

以上是关于WSL2 搭建 Rancher 开发环境的主要内容,如果未能解决你的问题,请参考以下文章

利用WSL2搭建Qemu仿真Vexpress-a9开发环境

windows 11 搭建 TensorFlow GPU 开发环境RTX 3060:2 -- 基于WSL2 docker 方式的使用

基于 Rancher 的企业 CICD 环境搭建

一台虚拟机安装rancher2+k8s环境

利用Docker搭建java项目开发环境

windows 11 搭建 TensorFlow2.6 GPU 开发环境RTX 3060