首页 > 解决方案 > 使用 kubernetes python cli 列出命名空间中的证书

问题描述

如何使用kubernetes python cli列出所有证书并在特定命名空间中进行描述

# list certificates
kubectl get certificates -n my-namespace

# describe a certificate
kubectl describe certificate my-certificate -n my-namespace

标签: pythonsslkubernetescertificate

解决方案


Kubernetes 默认没有 kind certificate,你必须先安装cert-manager 的 CustomResourceDefinition

考虑到上述情况意味着在 Kuberentes Python 客户端中,我们必须使用自定义对象 API,尤其是在您的情况下:函数list_namespaced_custom_object()get_namespaced_custom_object().

下面的代码有两个功能,一个是返回所有证书(相当于kubectl get certificates命令),第二个是返回一个特定证书的信息(相当于kubectl describe certificate {certificate-name}命令)。基于此示例代码

from kubernetes import client, config

config.load_kube_config()
api = client.CustomObjectsApi()

# kubectl get certificates -n my-namespace
def list_certificates():
    resources = api.list_namespaced_custom_object(
        group = "cert-manager.io",
        version = "v1",
        namespace = "my-namespace",
        plural = "certificates"
    )
    return resources

# kubectl describe certificate my-certificate -n my-namespace
def get_certificate():
    resource = api.get_namespaced_custom_object(
        group = "cert-manager.io",
        version = "v1",
        name = "my-certificate",
        namespace = "my-namespace",
        plural = "certificates"
    )
    return resource

请记住,这两个函数都返回Python 字典


推荐阅读