3

所以我需要通过一个pod连接到python kubernetes客户端。我一直在尝试使用config.load_incluster_config(),基本上是按照这里的例子。但是它抛出了这些错误。

  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 任何提示或建议将不胜感激。谢谢你。

4

1 回答 1

5

所以我需要通过python api以某种方式连接到那个pod

我很确定您误解了我的回答,和/或我误解了您的问题。仅应load_incluster_config在... in-cluster ... 时使用,否则它将尝试使用/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环境指定的地方还是在其他地方。 var KUBECONFIG(我的意思是,通常;我没有专门查看 python 库以查看该 env-var 是否受到尊重)。

于 2018-06-29T07:02:34.247 回答