在Docker Desktop中启用k8s实验功能

在Docker Desktop中启用k8s实验功能,docker,kubernetes,Docker,Kubernetes,有人知道这是否可能吗 我在文档中只能找到关于启用docker实验特性的参考,而不是kubernetes实验特性 我试过了,但还是出错了 k alpha debug -it exchange-pricing-865d579659-s8x6d --image=busybox --target=exchange-pricing-865d579659-s8x6d error: ephemeral containers are disabled for this cluster (error from s

有人知道这是否可能吗

我在文档中只能找到关于启用docker实验特性的参考,而不是kubernetes实验特性

我试过了,但还是出错了

k alpha debug -it exchange-pricing-865d579659-s8x6d --image=busybox --target=exchange-pricing-865d579659-s8x6d
error: ephemeral containers are disabled for this cluster (error from server: "the server could not find the requested resource").
谢谢

因为它仍然是一个alpha功能,所以默认情况下它被禁用

如您所知,要使其工作,需要启用
临时容器
,并启用Kubernetes客户端和服务器版本v1.16或更高版本

至于第二个要求,我假设您的Kuberntes服务器和客户端版本都是v1.16或更高版本,但目前看来,第一个要求在Docker Desktop上无法满足。根据,它目前不支持启用

但是,您仍然可以尝试使用ssh连接到主节点并编辑以下文件:

  • /etc/kubernetes/manifests/kube-apiserver.yaml
  • /etc/kubernetes/manifests/kube scheduler.yaml
通过在
命令
部分中添加:

--feature-gates=EphemeralContainers=true
然后,您需要删除这些pod,以便使用应用的新设置重新创建它们。您可以通过运行以下命令找到它们:

kubectl get pods -n kube-system

谢谢你,马里奥。正在努力编辑docker desktop附带的独立k8s。通过研究,我发现了这个命令/方法,但失败了,错误是“stat/bin/sh:没有这样的文件或目录:未知”kubectl exec-it$(kubectl get pods-n kube system | grep kube apiserver | awk'{print$1}')-n kube system--/bin/sh你不需要
kubectl exec
kube apiserver
pod。您需要的是将exec/attach/ssh连接到kubernetes主节点。您应该能够找到它作为一个单独的docker容器在您的机器上运行。只需使用
docker ps
并搜索
kubernetes
,然后尝试执行它
docker exec-it kubernetes_container bash
。不幸的是,这似乎也不起作用,并且失败了,出现了与kubectl类似的错误。但是,通过运行
docker ps
,您能找到kubernetes容器吗?如果不是
bash
,请尝试
/bin/sh
,但应该有某种方法连接到它。编辑
kube-apiserver
manifest似乎是设置它的唯一方法,但要做到这一点,您需要访问kubernetes容器。如果这是不可能的,可能无法在Docker Desktop中实现。