python - Kubernetes Python API 客户端 : execute full yaml file

标签 python api kubernetes client yaml

Kubernetes 有一个非常好的官方 Python API 客户端。 API 客户端假定您将创建单个资源(例如 pod 或服务),并假定您将使用 Python 对象来组合和创建 API 请求。

但是,我想通过 Python 接口(interface)运行任意 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)

关于python - Kubernetes Python API 客户端 : execute full yaml file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673919/

相关文章:

python - 如何将函数应用于两列 Pandas 数据框

android - 如何通过 YouTube API 获取特定用户上传的所有视频

azure - 在 Azure 中使用 terraform 创建 kubernetes 集群后,如何自动对其进行身份验证?

python - 使用列号中的条件使用 python 和 xlwt 导出到 Excel

python - 在 python 中使用 OCR 从图像中提取文本

javascript - "hide"API key 在哪里

kubernetes:无法更新端点警告

docker - 如何在 kubernetes Pods 中重试图像拉取?

python - 为什么 "as"在 Jython 2.5 中的 "except"语句中导致 SyntaxError?

javascript - 如何在 Angular 4 中拆分 JSON 对象