当前位置: 首页 > 知识库问答 >
问题:

Kubernetes吊舱未启动,在代理后运行

钱经业
2023-03-14

我在minikube上运行kubernetes,我在一个代理后面,所以我设置了env变量(HTTP_代理)

kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
kubectl get pod

pod从未启动,我得到了错误

desc=无法提取沙盒图像\“gcr.io/google\u containers/pause-amd64:3.0\”

docker拉动gcr。io/google_容器/echoserver:1.4运行良好

共有3个答案

罗鸿畴
2023-03-14

看起来您需要将minikube ip添加到no_代理:

export NO_PROXY=$no_proxy,$(minikube ip)

查看此线程:代理后面的kubectl

景正文
2023-03-14

我自己能修好它。我的主机上有Docker,Minikube有Docker。Minukube的Docker有问题,我必须通过ssh连接到minikube虚拟机,并遵循这篇文章

无法下载代理后的Docker图像,现在一切正常,

应该有更好的方法来做这件事,在启动Minikube时,我已经通过了下面这样的docker env,这不起作用

minikube start --docker-env HTTP_PROXY=http://xxxx:8080 --docker-env HTTPS_PROXY=http://xxxx:8080 
--docker-env NO_PROXY=localhost,127.0.0.0/8,192.0.0.0/8 --extra-config=kubelet.PodInfraContainerImage=myhub/pause:3.0

我在Minikube VM中设置了相同的env变量,以使其工作

堵远航
2023-03-14

我遇到了同样的问题,我正在分享我在做了几次错误的转弯后学到的东西。这是minikube v0。19.0. 如果您有较旧的版本,则可能需要更新。

记住,我们需要完成两件事:

  1. 确保kubctl在连接到桌面上的Minikube时不通过代理。
  2. 确保Minikube中的docker守护进程在需要连接到图像存储库时确实通过代理。

首先,确保您的代理设置在您的环境中是正确的。下面是我的一个例子。bashrc:

export {http,https,ftp}_proxy=http://${MY_PROXY_HOST}:${MY_PROXY_PORT}
export {HTTP,HTTPS,FTP}_PROXY=${http_proxy}
export no_proxy="localhost,127.0.0.1,localaddress,.your.domain.com,192.168.99.100"
export NO_PROXY=${no_proxy}

有几件事需要注意:

  1. 我设置了小写和大写。有时这很重要。
  2. 192.168.99.100来自Minikube ip。您可以在群集启动后添加它。

好的,这样就可以保证kubectl正常工作了。现在我们有了下一个问题,即确保迷你库中的Docker守护进程配置了您的代理设置。你这样做,正如PMat这样提到的:

$ minikube delete
$ minikube start --docker-env HTTP_PROXY=${http_proxy} --docker-env HTTPS_PROXY=${https_proxy} --docker-env NO_PROXY=192.168.99.0/24

要验证这些设置是否已生效,请执行以下操作:

$ minikube ssh -- systemctl show docker --property=Environment --no-pager

您应该会看到列出的代理环境变量。

为什么要删除minikube?因为如果没有它,start将不会更新Docker环境,如果您以前创建了集群(比如没有代理信息)。也许这就是为什么PMat没有成功通过docker env启动(或者可能是在旧版本的minikube上)。

 类似资料:
  • 我们正在使用Docker 1.19运行库伯内特斯(1.18) Container是一个基于Java13的Spring启动应用程序(使用基本图像作为openjdk: 13-alpin),下面是内存设置。 豆荚: 内存-最小448M,最大2500M cpu-最小值0.1 容器: Xms:256M,Xmx:512M 当流量发送更长时间时,容器会突然重新启动;在Prometheus中,我可以看到Pod内存

  • 我有一个后端nodeJS应用程序运行在kubernetes集群。现在我想运行两个cron作业计划每个月。cron作业在一个JS文件中。如何使用库伯内特斯创建一个作业,在每个月运行该服务的pod中运行这些JS文件? 此链接提供了对其工作原理的基本理解,但我对如何为特定服务和特定Pod运行它有点困惑 https://kubernetes.io/docs/concepts/workloads/contr

  • 我试图了解如何最好地使用库伯内特的准备和活跃度探测器。我在测试时观察到的是,如果就绪探测失败,则pod被标记为未就绪,并从负载均衡器中移除。然而,然后我希望启动一个新的pod并将其移入负载均衡器,直到原来的pod再次准备就绪(或者它的活性探测失败并被杀死),然后它们中的一个可以被终止。 如果就绪探测失败,我们可能想要暂时从服务中移除一个pod,但这似乎会冒着所有pod都未就绪的风险,这将导致负载均

  • 我的Java微服务正在AWS EC2实例上托管的k8s集群中运行。 我有大约30个微服务(nodejs和Java8的良好组合)在K8s集群中运行。我面临一个挑战,我的java应用程序pods意外重启,导致应用程序5xx数量增加。 为了调试它,我在pod和应用程序中启动了一个newrelic代理,并找到了以下图表: 在我可以看到的地方,我的Xmx值为6GB,我的用途最大为5.2GB。 这清楚地表明J

  • null null null > 将Kubernetes降级为。 使用重新初始化了Kubernetes,因为服务器有另一个外部IP,无法通过其他主机访问,而Kubernetes倾向于选择该IP作为API服务器IP。由Flannel授权。 初始化后没有连接节点的结果输出 看起来API服务器已按其应有的方式部署 然后我将法兰绒网络pod应用于