【发布时间】:2020-08-03 03:02:02
【问题描述】:
我对 Kubernetes 很陌生,我必须使用 Kubernetes python-client 创建一个 pod。 因此,为了进行实验,我正在尝试运行项目提供的examples notebooks,而不做任何更改,看看事情是如何工作的。
在第 3 步以 intro_notebook.ipynb 开始出现错误:
ValueError: Invalid value for `selector`, must not be `None`
代码如下:
from kubernetes import client, config
我唯一更改的部分是第二个单元,因为我使用 Ubuntu 的 microk8s 运行 Kubernetes:
config.load_kube_config('/var/snap/microk8s/current/credentials/client.config')
api_instance = client.AppsV1Api()
dep = client.V1Deployment()
spec = client.V1DeploymentSpec() # <<< At this line I hit the error!
完整的回溯:
ValueError Traceback (most recent call last)
<ipython-input-9-f155901e8381> in <module>
1 api_instance = client.AppsV1Api()
2 dep = client.V1Deployment()
----> 3 spec = client.V1DeploymentSpec()
~/.local/share/virtualenvs/jupyter-2hJZ4kgI/lib/python3.8/site-packages/kubernetes/client/models/v1_deployment_spec.py in __init__(self, min_ready_seconds, paused, progress_deadline_seconds, replicas, revision_history_limit, selector, strategy, template)
76 if revision_history_limit is not None:
77 self.revision_history_limit = revision_history_limit
---> 78 self.selector = selector
79 if strategy is not None:
80 self.strategy = strategy
~/.local/share/virtualenvs/jupyter-2hJZ4kgI/lib/python3.8/site-packages/kubernetes/client/models/v1_deployment_spec.py in selector(self, selector)
215 """
216 if selector is None:
--> 217 raise ValueError("Invalid value for `selector`, must not be `None`") # noqa: E501
218
219 self._selector = selector
ValueError: Invalid value for `selector`, must not be `None`
我正在运行python3.8:
$ pip freeze | grep -e kuber
kubernetes==11.0.0
$ snap list microk8s
Name Version Rev Tracking Publisher Notes
microk8s v1.18.6 1551 latest/stable canonical✓ classic
更新
将 microk8s 降级到 v1.15.11 并没有解决问题。
【问题讨论】:
-
您确定这是错误吗?通常会有一个完整的回溯,包括失败的行。
-
请包括整个错误提示以及代码。
-
@FooBar 你能分享一下你集群运行的 Kubernetes 版本吗?
-
@hilsenrat 添加的版本:
v1.18.6。这是兼容性问题吗?我可以列出 pod... -
@FooBar 可能是......正如你看到的in that issue,Python 客户端现在只支持到 Kubernetes v1.15。
标签: python python-3.x kubernetes kubernetes-apiserver