WSL Windows 10 中 ubuntu 内的 kubectl 代理

问题描述 投票:0回答:2

我正在运行 Windows 10,使用 WSL1 和 ubuntu 作为发行版。 我的Windows版本是版本1903(内部版本18362.418)

我正在尝试使用 ubuntu WSL 中的 kubectl 代理连接到 kubernetes。当我尝试使用浏览器连接到仪表板时,连接被拒绝。

我已使用 netstat -a 检查 Windows 以查看活动连接。

如果我在 Windows 终端中运行 kubectl,连接到 kubernetes 没有问题,所以只有当我尝试连接 ubuntu WSL1 时才会出现问题。

我也尝试过运行以下命令

kubectl proxy --address='0.0.0.0' --port=8001 --accept-hosts='.*'

...但是尽管我看到 Windows 正在侦听端口,但连接被拒绝。将端口更改为另一个端口并不能解决问题。禁用防火墙也没有解决问题。

有什么想法吗?

kubernetes windows-subsystem-for-linux
2个回答
2
投票

首先要做的是检查您是否能够安全地与集群通信:(

kubectl get svc -n kube-system
,
kubectl cluster-info
)

如果没有检查

$HOME/.kube
文件夹是否已创建。如果没有,请运行:
gcloud container clusters get-credentials default --region=<your_region>


0
投票

WSL 有一个虚拟 IP,因此 Windows 中的 127.0.0.1 (localhost) 指向您的 Windows 主机(不是 WSL)。

我写了这个

run-proxy.sh
脚本,希望对其他人有帮助

#!/bin/bash

# Find the WSL2 IP Address
wsl_ip=$(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1)

if [ -z "$wsl_ip" ]; then
    echo "Failed to find the WSL2 IP address."
    exit 1
fi

echo "WSL2 IP Address: $wsl_ip"

# Set the desired port for kubectl proxy
proxy_port=8001

echo "Starting kubectl proxy on http://$wsl_ip:$proxy_port"
echo "dashboard: http://$wsl_ip:$proxy_port/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/"
kubectl proxy --address="$wsl_ip" --port=$proxy_port --accept-hosts='.*'

# Note: You can access Kubernetes API from Windows using http://$wsl_ip:$proxy_port
© www.soinside.com 2019 - 2024. All rights reserved.