windows wsl 常用命令

初始化wsl

wsl --install

通过帮助指令了解wsl用法

wsl.exe --help

wsl常用命令

安装系统Ubuntu,先用wsl --list --online查看有哪些可用的系统

wsl.exe --install -d Ubuntu

wsl安装centos7

在这个地址下载centos7: https://github.com/mishamosher/CentOS-WSL/releases

解压了下载安装包
在powershell里进入解压后的centos7目录
运行./Centos7.exe 就安装了

报错
WSL的CentOS7使用systemctl和service命令时报错Failed to get D-Bus connection: Operation not permitted,
解决办法是更换systemctl文件

mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

查看已安装的Linux子系统

wsl.exe -l -v

进入Linux子系统Ubuntu, 需要进入哪个,先用wsl.exe -l -v查看之后选择

#只有一个默认子系统
wsl
#多个子系统 ,-d 指定某个
wsl -d Ubuntu

删除 某个 wsl 子系统,例如 Ubuntu-20.04

wsl --unregister Ubuntu-20.04

powershell执行Linux命令

#只有一个默认子系统
wsl -e df -h
#执行某个子系统的命令
wsl -e 

让某个子系统关机

wsl -t Ubuntu #或者 wsl --terminate Ubuntu

显示可以安装的子系统

 wsl --list --online

设置默认子系统

PS C:\Users\Administrator> wsl -l -v
  NAME       STATE           VERSION
* Ubuntu     Stopped         1
  CentOS7    Running         1
PS C:\Users\Administrator> wsl -s CentOS7
PS C:\Users\Administrator> wsl -l -v
  NAME       STATE           VERSION
* CentOS7    Running         1
  Ubuntu     Stopped         1
PS C:\Users\Administrator>

windows server 2022 安装 windows terminal

参考https://www.thomasmaurer.ch/2021/05/install-windows-terminal-on-windows-server-2022/
命令

Invoke-WebRequest -Uri https://github.com/microsoft/terminal/releases/download/v1.7.1091.0/Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle -outfile Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle
#这种方式安装,版本无法自动升级,需要手动升级
Add-AppxPackage -Path .\Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle

PVE 安装 wsl 2 子系统 报错

修改 /etc/pve/qemu-server/101.conf (101还是102要看虚拟机的编号)
添加args 例如

args: -cpu 'host,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vpindex,+kvm_pv_eoi,+kvm_pv_unhalt,-kvm,-hypervisor'

参考https://forum.proxmox.com/threads/hyper-v-in-windows-guest-not-working-for-wsl2.87791/

wsl2 启动docker支持

安装docker Windows
https://www.docker.com/products/docker-desktop
下载安装

关闭Windows自动更新

  1. run services.msc ,禁用windows update
  2. 调低这个
    Pulpit rock
    Pulpit rock

vs code 安装插件搜索 Remote Development extension pack

安装插件

vs code 调试 shell script

安装插件bash debug
https://zbttl-github-io.vercel.app/vscode-diao-shi-bash-shell-jiao-ben/

安装python 3.9

官网下载安装

vs code插件安装ansible

wsl2 通过KinD (kubernetes in docker) 安装k8s集群

请参考: https://www.qikqiak.com/post/deploy-k8s-on-win-use-wsl2/

# 下载 KinD 二进制文件
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
# 标记为可执行文件
chmod +x ./kind
# 移动到 PATH 目录下去
mv ./kind /usr/local/bin/
# TODO,记得提前下载安装 kubectl 二进制文件
# 检查是否设置了 KUBECONFIG 环境变量
echo $KUBECONFIG
# 检查是否存在 .kube 目录,不需要手动创建
ls $HOME/.kube
# 使用 kind 命令创建一个名为 wslk8s 的集群
kind create cluster --name wslk8s
# 创建后检查 .kube 目录
ls $HOME/.kube




# 创建一个3节点集群的配置文件 **注意以下配置只是看看而已,请参考下方带ingress 转发(映射到宿主机的80,443)的配置**
cat << EOF > kind-3nodes.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
#注意,该配置只是看看和参考,不带端口映射和ingress
nodes:
  - role: control-plane
  - role: worker
  - role: worker
EOF
# 使用配置文件创建新的集群
kind create cluster --name wslkindmultinodes --config ./kind-3nodes.yaml

# 获取集群节点
kubectl get nodes

# 删除现在的集群
kind delete cluster --name wslkindmultinodes 

kind安装k8s( 带ingress 转发(映射到宿主机的80,443))

#第一步,建立集群
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
#注意该配置拿来生产都没问题,
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP
EOF
#第二步 添加 ingress-nginx 控制器
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

#第三步,添加服务和ingress,验证ingress是否工作正常
kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/usage.yaml
#打开 http://宿主机IP/foo
#打开 http://宿主机IP/bar
本人水平有限,还在不断学习中 难免有很多错误或者遗漏,望见谅
原文地址:https://www.cnblogs.com/faberbeta/p/15677341.html