You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于使用Python Kubernetes库的create_namespaced_custom_object实现server side dry run的疑问

关于使用Python Kubernetes库的create_namespaced_custom_object实现Server-Side Dry Run的疑问

嘿,我来帮你捋捋这个问题!其实在Python Kubernetes客户端里,create_namespaced_custom_object的dry_run参数支持的All这个值,就是对应Kubernetes API里的服务器端Dry Run哦。

你可以参考下面的代码来实现:

from kubernetes import client, config

# 加载Kubernetes配置,可根据环境选择加载kubeconfig或集群内配置
config.load_kube_config()

# 初始化CustomObjectsApi客户端
custom_objects_api = client.CustomObjectsApi()

# 定义你的自定义资源内容
custom_resource_body = {
    "apiVersion": "your.custom.group/v1",
    "kind": "YourCustomResourceKind",
    "metadata": {
        "name": "demo-resource",
        "namespace": "default"
    },
    "spec": {
        # 这里填写你的自定义资源规格字段
    }
}

try:
    # 执行服务器端Dry Run,dry_run参数传入["All"]即可
    dry_run_response = custom_objects_api.create_namespaced_custom_object(
        group="your.custom.group",
        version="v1",
        namespace="default",
        plural="yourcustomresources",  # 对应CRD的plural名称
        body=custom_resource_body,
        dry_run=["All"]
    )
    print("Server-Side Dry Run 执行成功!资源配置通过服务器端校验")
    print(dry_run_response)
except client.ApiException as e:
    print(f"Server-Side Dry Run 失败,错误信息:{e.body}")

还有几个关键点要提醒你:

  • dry_run参数需要传列表类型的["All"],这个值会触发Kubernetes服务器端完整的校验流程,不会实际创建资源
  • 确认你的Kubernetes集群版本在1.13及以上,因为服务器端Dry Run是从这个版本开始正式支持的
  • 这次Dry Run会和真实创建资源一样,完成所有校验:CRD是否存在、字段格式是否合法、当前用户是否有创建权限、资源命名是否符合规范等等

你之前查文档没找到明确说明,大概率是因为文档没有直接把All这个参数值和服务器端Dry Run做关联说明,其实它就是专门干这个用的哦。

备注:内容来源于stack exchange,提问作者Pranav Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:54:51