我有 linux 命令来获取特定命名空间中 pod 的资源使用情况,等效的 python 命令是什么
$ kubectl top pod
NAME CPU(cores) MEMORY(bytes)
nginx-deployment-7fd6966748-57mt5 0m 2Mi
nginx-deployment-7fd6966748-jpbjl 0m 2Mi
nginx-deployment-7fd6966748-snrx4 0m 2Mi
Run Code Online (Sandbox Code Playgroud) 我有一个具有多个 ServiceAccounts 的环境,并且 pod 可以使用 kubernetes python sdk 访问 Kubernetes api。函数 load_incluster_config() 选择哪个帐户。有什么方法可以指定要选择的帐户吗?我发现我的 pod 总是选择名为 ServiceAccount 的“默认”。
openshift kubernetes kubectl kubernetes-python-client kubernetes-pod
我正在尝试找到与如何在 Kubernetes 中删除(删除)注释 等效的 API ,以删除 Python 中服务类型的注释。从命令行执行此操作效果非常好。
最新的kubernetes-client/python没有任何允许修补注释的 API。我总是可以删除并重新创建该服务,但我想修补它。
如果有人愿意的话,这是一个简单的 MCVE。测试服务 YAML
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
description: my test service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
Run Code Online (Sandbox Code Playgroud)
和我正在使用的Python代码
from kubernetes import client, config
from kubernetes.client.rest import ApiException
config.load_kube_config()
coreV1 = client.CoreV1Api()
appsV1 = client.AppsV1Api()
try:
resp = coreV1.read_namespaced_service("my-service", "default")
del resp.metadata.annotations["description"]
patch = coreV1.patch_namespaced_service("my-service", "default", body=resp)
print(patch)
except ApiException as e:
print(str(e))
Run Code Online (Sandbox Code Playgroud) 所以我需要通过一个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.")
Run Code Online (Sandbox Code Playgroud)
我正在使用Python 2.7和Minikube。任何提示或建议将不胜感激。谢谢。
我正在使用 kubernetes-client/python 并想编写一个方法,该方法将阻止控制,直到一组 Pod 处于就绪状态(运行状态)。我发现 kubernetes 支持wait --for命令通过命令做同样的事情。有人可以帮助我如何使用 kubernetes python 客户端实现相同的功能。
准确地说,我最感兴趣的是相当于-
kubectl wait --for condition=Ready pod -l 'app in (kafka,elasticsearch)'
Run Code Online (Sandbox Code Playgroud)