WSL===》由win服务器连接k8s集群

Posted 一夜暴富--gogogo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL===》由win服务器连接k8s集群相关的知识,希望对你有一定的参考价值。

一、背景:

k8s集群为阿里云云服务,只提供内网访问
只有一台Windows服务器,没有Linux服务器
win服务器与k8s集群内网互通

二、通过win服务器安装centos7连接k8s集群

WSL,即Windows Subsystem for Linux,中文名称:适用于Linux的Windows子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

2.1在Windows服务器安装WSL

要在Windows Server 2019上使用WSL,首先需要确定您的系统版本大于1709

①在开始菜单中点击Windows Powershell进入,或者在开始菜单中磁性贴中点击Windows Powershell进入,如下图:

②输入Powershell命令:

Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer


上面的WindowsVersion的值即为您的系统版本。图中值为1809,满足WSL安装要求。
然后继续在上面的Powershell窗口中输入如下命令启用WSL:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如下图:

回车后, 稍等几秒,会提示您选择并重启计算机,如下图:

输入y或直接回车,电脑立即重启。重启后即成功启用了WSL。

接下来,就是选择下载并安装您喜欢的Linux发行版,在Windows 10下可以通过Microsoft Store应用直接下载安装,在Windows Server 2019中Microsoft Store应用不可用,可以通过单击以下链接来下载并手动安装Linux发行版:
Ubuntu 20.04
Ubuntu 20.04 ARM
Ubuntu 18.04
Ubuntu 18.04 ARM
Ubuntu 16.04
Debian GNU/Linux
Kali Linux
OpenSUSE Leap 42
SUSE Linux Enterprise Server 12
Fedora Remix for WSL
然而,需要注意的是,如上个别发行版如Kali Linux并不适合于Windows Server 2019,因为Kali Linux需要运行在WSL 2上面,而目前Windows Server 2019是运行在WSL上的,除非您安装使用Windows Server 2019 Insider Preview版本,才能支持WSL 2。WSL 2 是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Windows 运行ELF64 Linux二进制文件,WSL 2 仅适用于Windows 10 版本1903、内部版本18362或更高版本。如果您试图强制在Windows Server 2019上安装使用Kali Linux,将不幸遭遇本文文首所述的BSOD。

2.2安装centos7

首先我们需要下载一个可用于WSL的CentOS镜像,该镜像应该是一个经过压缩的,且包含了rootfs及其它文件。

下载地址:https://github.com/yuk7/CentWSL

从上面Github地址下载对应的压缩文件,右键点击并解压之,

解压后,您将在目标目录中看到2个文件:rootfs.tar.gz和CentOS.exe。我们需要运行CentOS.exe,以便解压其中的文件并注册到WSL。右键点击并以管理员身份运行:

稍等一些时间,系统将自动进行初始化,完成后您将看到如下图所示消息,此时可按任意键退出安装。

要在WSL上启动运行Centos,这时您返回解压后的目录,您将看到多出了2个目录,如下图:

不用理会,此时再次右击并以管理员身份运行CentOS.exe,即成功登录系统了,如下图:

现在,您可以随心所欲在CentOS上运行您想要执行的命令了。然而,为了检验系统可用性,我们最好使用yum命令测试下更新系统:
yum -y update

卸载:

./CentOS.exe clean

当您在使用CentOS过程中遭遇一些错误想重装,或者您不小心删除了解压缩的目录需要重装时,我们需要先卸载之:

2.3在centos7安装kubectl

在 Linux 系统中安装并设置 kubectl(因集群版本为v1.22.3所以kubectl命令也安装此版本)
1.用 curl 在 Linux 系统中安装 kubectl

curl -LO https://dl.k8s.io/release/v1.22.3/bin/linux/amd64/kubectl

2.验证该可执行文件

下载 kubectl 校验和文件

curl -LO https://dl.k8s.io/release/v1.22.3/bin/linux/amd64/kubectl.sha256   #下载的 kubectl 与校验和文件版本必须相同。

基于校验和文件,验证 kubectl 的可执行文件:

echo "$(<kubectl.sha256) kubectl" | sha256sum --check

验证通过时,输出为:
 kubectl: OK

验证失败时,sha256 将以非零值退出,并打印如下输出:
kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

3.安装 kubectl

install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

4.执行测试,以保障你安装的版本是最新的:

kubectl version --client

或者使用如下命令来查看版本的详细信息:
kubectl version --client --output=yaml

至此kubectl安装完毕

2.4认证k8s集群

通过 kubectl 连接 Kubernetes 集群

将集群凭证复制到对应目录即可($HOME/.kube/config)

最后可以通过kubectl get nodes 查看节点状态

三、扩展在win的WSL开启后安装Ubuntu系统

以Ubuntu 16.04为例,我们通过Powershell下载此发行版:

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx –UseBasicParsing

回车后开始下载,取决于您的下载速度,可能费时很长,如下图:

有可能就遇到下载失败了,如下图:

这时候,为方便查看下载进度,我们改用curl命令进行下载:

curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604

也是失败,如下图:


于是再改成下载更新版本的ubuntu:

curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804

下载速度就很快了,5分钟左右就完成下载了,如下图:

然后对下载后ubuntu-1804.appx文件进行重命名,并解压到当前目录的ubuntu1804子目录下:

Rename-Item ubuntu-1804.appx ubuntu-1804.zip

Expand-Archive ubuntu-1804.zip ubuntu1804

如下图:

然后继续输入下面命令切换到解压后的目录,并启动运行ubuntu:

cd ubuntu1804

ubuntu1804.exe

如下图:

很不幸,您将看到如下错误提示:

解决的方法有2个,1个是按照错误提示中所述手工键入“.\\ubuntu1804.exe”,或键入字母“u”再按Tab键也会自动填充“.\\ubuntu1804.exe”命令。

另1个方法是使用如下PowerShell命令将您的分发版路径添加到Windows环境路径(在本例中为 C:\\Users\\Administrator\\Ubuntu1804)中:

$userenv = [System.Environment]::GetEnvironmentVariable(“Path”, “User”)

[System.Environment]::SetEnvironmentVariable(“PATH”, $userenv + “;C:\\Users\\Administrator\\Ubuntu1804”, “User”)

如下图:


只是,第2个方法因为是修改系统变量,需要关闭原有窗口并重新启动PowerShell或者重启下计算机。重启后,就可以在任意路径下直接通过键入“.\\ubuntu1804.exe”命令启动您的分发版,然后稍等片刻等待系统完成初始化。如下图:

之后,按照提示输入要创建的用户名和密码,即成功登录ubuntu系统,如下图:

这样您就可以开始愉快的utuntu之旅了,在上面安装LNMP等环境

以上是关于WSL===》由win服务器连接k8s集群的主要内容,如果未能解决你的问题,请参考以下文章

TFS2018 连接 K8S集群的方法

07—K8S杂乱的知识

07—K8S杂乱的知识

如何在k8s集群内部前后连接(连接被拒绝)

(集群外)jenkins连接K8S集群

(集群外)jenkins连接K8S集群