Kubernetes 有一个非常好的官方 Python API 客户端。 API 客户端假设您将创建单独的资源(例如 Pod 或服务),并假设您将使用 Python 对象来撰写和创建 API 请求。
但是,我想通过 Python 接口运行任意 kubernetes YAML 文件(包含一个或多个 k8s 资源)。我想知道是否可以利用 Python kubernetes 客户端来应用任意 YAML 文件?
我基本上正在寻找相当于以下内容的Python:
kubectl apply -f some-file-containing-multiple-resources.yaml
我正在寻找一种基本上可以加载 kubeconfig 并通过 Python 以相当 Pythonic 的方式应用 yaml 的东西。
我知道我可能可以使用 Python 子进程调用来包装 kubectl 命令,但我希望有比这更 Pythonic 的东西,并希望核心 K8s Python 客户端可以做类似的事情。或者,是否有另一个 Python 包可以执行类似的操作。
Python kubernetes 客户端可以调用任意 k8s yaml 文件吗?如果不能,有什么办法可以吗?
感谢您的阅读 - 我感谢您提供的任何建议。
您可以尝试使用create_from_yaml
由 kubernetes.utils 按以下方式提供。
这是多资源定义文件
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: ngnx-container
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 8080
targetPort: 80
现在您可以尝试运行以下代码并检查它是否适合您。
from kubernetes import client, config, utils
config.load_kube_config()
k8s_client = client.ApiClient()
yaml_file = '<location to your multi-resource file>'
utils.create_from_yaml(k8s_client, yaml_file)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)