Kubernetes 在Windows上运行Calicotl会导致错误:无法创建Calico API客户端:配置无效:未提供任何配置

Kubernetes 在Windows上运行Calicotl会导致错误:无法创建Calico API客户端:配置无效:未提供任何配置,kubernetes,kubectl,project-calico,kubeconfig,calicoctl,Kubernetes,Kubectl,Project Calico,Kubeconfig,Calicoctl,我将k3d与calico一起使用,并尝试使用calicoctl设置网络策略。我可以在Ubuntu上运行,但在Windows上不行。为了设置它,我执行了以下操作: #下载印花棉布YAML #下载:https://raw.githubusercontent.com/rancher/k3d/main/docs/usage/guides/calico.yaml #创建k3d集群 k3d集群创建“dev”-k3s服务器arg'--flannel backend=none'--volume“$(pwd)/c

我将k3d与calico一起使用,并尝试使用
calicoctl
设置网络策略。我可以在Ubuntu上运行,但在Windows上不行。为了设置它,我执行了以下操作:

#下载印花棉布YAML
#下载:https://raw.githubusercontent.com/rancher/k3d/main/docs/usage/guides/calico.yaml
#创建k3d集群
k3d集群创建“dev”-k3s服务器arg'--flannel backend=none'--volume“$(pwd)/calico.yaml:/var/lib/rancher/k3s/server/manifests/calico.yaml
#下载Windows版本
#下载:https://github.com/projectcalico/calicoctl/releases/download/v3.18.2/calicoctl-windows-amd64.exe 
#化名
设置别名-Name calicoctl-Value.“\calicoctl-windows-amd64.exe”
然后,当我尝试使用
calicoctl apply-f my policy.yaml运行应用
NetWorkPolicy
时,我得到错误:

无法创建Calico API客户端:配置无效:未提供任何配置,请尝试设置KUBERNETES_主环境变量

因此,我尝试使用Kubeconfig的值设置:

#从Kubeconfig(提供)获取IP/端口https://0.0.0.0:60776)
$kmaster=(kubectl配置视图-o jsonpath=“{.clusters[?(@.name=='k3d-dev')].cluster.server}”)
#从kube配置中设置kubernetes主环境变量
[Environment]::SetEnvironmentVariable(“KUBERNETES_MASTER”,$kmaster,“用户”)
这仍然会产生相同的错误。(注意:来自Kubeconfig的ip为“https://0.0.0.0:60776))

因此,我尝试了以下所有方法,但均无效:

set KUBECONFIG=~/.kube/config
设置CALICO_KUBECONFIG=C:\Users\myname\.kube\config
设置KUBE\u CONFIG\u PATH=C:\Users\myname\.KUBE\CONFIG
$env:KUBERNETES_MASTER=(kubectl配置视图-o jsonpath=“{.clusters[?(@.name=='k3d-dev')].cluster.server}”)
如何让“calicoctl-windows-amd64.exe”找到我的Kubernetes群集?

而官方声称:

  • Calico在默认用户位置查找配置
    ~/.kube/config
  • 它还将查看
    KUBERNETES\u MASTER
    (错误输出说明了这一点)
  • 它还将查看
    KUBECONFIG
  • 没有!上面所有的都不能在Windows上运行。(在Ubuntu上,我不需要做任何特殊的事情,它找到了我的配置)

    我找到的唯一解决方案是执行以下操作:

  • 创建一个配置文件
  • 在每次调用中传递配置文件
  • calico.cfg.yaml

    apiVersion:projectcalico.org/v3 种类:CalicoAPIConfig 元数据: 规格: 数据存储类型:“kubernetes” kubeconfig:“C:/users/myusername/.kube/config”
    注意:如果您通过“~/.kube/config”,它将失败并说它找不到该路径

    现在调用它需要:

    #注意“-config=calico.cfg.yaml”
    calicoctl apply-f some-policy.yaml--config=calico.cfg.yaml
    
    我认为,当使用
    “~/.kube/config”
    作为kubeconfig路径时,从配置文件工作但抛出错误判断,它正在查找“默认”路径,但使用的Windows API不理解
    ~
    别名