【发布时间】:2020-08-30 10:08:01
【问题描述】:
使用 kubectl 可以获取 Kubernetes 命名空间内的完整资源列表,但速度极慢。这很容易做到,但对于我需要做的事情来说太慢了。
我更喜欢使用 python or golang clients 来完成 kubectl 代表我所做的事情。但是the API docs are, well, generated by a machine,除了另一台机器之外别无用处:-) 你会认为会有这样简单的例子,但可惜没有。
我知道使用 kubectl 和 scotch tape 以及 bash shell 可以执行以下操作:
#! /bin/bash
NAMESPACE=${1:-default}
kubectl get ns $NAMESPACE > /dev/null 2>&1 || {
echo $0: Namespace $NAMESPACE was not found >&2
exit 1
}
for type in $(kubectl api-resources -o name --namespaced=true --no-headers --verbs=list)
do
for item in $(kubectl -n $NAMESPACE get $type --ignore-not-found --show-kind --no-headers -o name | grep -v events.k8s.io | grep -v event)
do
echo $item
done
done
如何使用适用于 kubernetes 的非常程序化的 python 客户端来完成这项工作?
【问题讨论】:
标签: python kubernetes client