【问题标题】:accessing kubernetes python api through a pod通过 pod 访问 kubernetes python api
【发布时间】:2018-12-08 02:55:24
【问题描述】:

所以我需要通过 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 kubernetes minikube kubernetes-python-client


    【解决方案1】:

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

    我很确定您误解了my answer,和/或我误解了您的问题。一个人应该只在 ... in-cluster ... 时使用 load_incluster_config ,否则它将尝试使用 /var/run/secrets/kubernetes.io/etcetc 而找不到它们(在您上面引用的实际错误中缺少的 env-var 之上和之外)。但是,如果您按照建议使用if os.getenv('KUBERNETES_SERVICE_HOST'): 保护load_incluster_config(),则它不会运行该代码,并且这里的这个问题不会有问题。

    如果你已经构建了一个 docker 镜像,但是没有将它部署到 kubernetes 中,那么这就不清楚了。


    如果你只是想使用python api访问集群,而不是within集群,config.load_kube_config()其实是正确的方法调用,但是您绝对需要提供一个有效的kubeconfig,无论是在/root/.kube/config 还是在env-var KUBECONFIG 指定的另一个地方(我的意思是,通常;我没有专门查看python 库以查看是否env-var 受到尊重)。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 2018-05-07
      • 2019-03-14
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2019-05-08
      相关资源
      最近更新 更多