通过pod访问kubernetes python api
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过pod访问kubernetes python api相关的知识,希望对你有一定的参考价值。
所以我需要通过pod连接到python kubernetes客户端。我一直在尝试使用config.load_incluster_config()
,基本上遵循here的例子。然而,它正在抛出这些错误。
File "/Users/myname/Library/Python/2.7/lib/python/site-packages/kubernetes/config/incluster_config.py", line 93, in load_incluster_config
cert_filename=SERVICE_CERT_FILENAME).load_and_set()
File "/Users/myname/Library/Python/2.7/lib/python/site- packages/kubernetes/config/incluster_config.py", line 45, in load_and_set
self._load_config()
File "/Users/myname/Library/Python/2.7/lib/python/site-packages/kubernetes/config/incluster_config.py", line 51, in _load_config
raise ConfigException("Service host/port is not set.")
我正在使用Python 2.7和Minikube任何提示或建议都会非常感激。谢谢。
所以我需要通过python api以某种方式连接到那个pod
我很确定你误解了my answer,和/或我误解了你的问题。人们应该只在群集中使用load_incluster_config
...否则它将尝试使用/var/run/secrets/kubernetes.io/etcetc
而不是找到它们(在上面引用的实际错误中超出缺失的env-var)。但是,如果您按照建议使用load_incluster_config()
保护if os.getenv('KUBERNETES_SERVICE_HOST'):
,那么它将不会运行该代码,这里的问题不会成为问题。
如果您已经构建了一个docker镜像,但没有将其部署到kubernetes中,那么这一点并不清楚。
如果你只是想使用python api来访问集群,而不是来自集群内部,那么config.load_kube_config()
实际上是正确的方法调用,但你绝对需要提供一个有效的kubeconfig
,无论是在/root/.kube/config
还是在指定的其他地方env-var KUBECONFIG
(我的意思是,通常;我没有专门查看python库,看看是否尊重env-var)。
以上是关于通过pod访问kubernetes python api的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes Python客户端:使用Autobahn websocket连接到pod /服务/使用bearer token连接
如何让多个 pod 访问 Kubernetes 中现有的 NFS 文件夹?