OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  k8s-certs:使用 cert-manager 管理 Kubernetes 证书

k8s-certs:使用 cert-manager 管理 Kubernetes 证书

 
  kernel ·  2026-02-08 11:48:26 · 3 次点击  · 0 条评论  

名称: k8s-certs
描述: 使用 cert-manager 进行 Kubernetes 证书管理。适用于管理 TLS 证书、配置签发器或排查证书问题。


使用 cert-manager 管理证书

使用 kubectl-mcp-server 的 cert-manager 工具管理 TLS 证书。

检查安装

certmanager_detect_tool()

证书管理

列出证书

# 列出所有证书
certmanager_certificates_list_tool(namespace="default")

# 检查证书状态
# - True: 证书就绪
# - False: 证书未就绪(请检查事件)

获取证书详情

certmanager_certificate_get_tool(
    name="my-tls",
    namespace="default"
)
# 显示信息:
# - 签发器引用
# - 密钥名称
# - DNS 名称
# - 过期日期
# - 续订时间

创建证书

kubectl_apply(manifest="""
apiVersion: cert-manager.io/v1
kind: Certificate
**元数据:**
  name: my-tls
  namespace: default
spec:
  secretName: my-tls-secret
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
  - app.example.com
  - www.example.com
""")

签发器管理

列出签发器

# 命名空间签发器
certmanager_issuers_list_tool(namespace="default")

# 集群范围签发器
certmanager_clusterissuers_list_tool()

获取签发器详情

certmanager_issuer_get_tool(name="my-issuer", namespace="default")
certmanager_clusterissuer_get_tool(name="letsencrypt-prod")

创建 Let's Encrypt 签发器

# 测试环境(暂存)
kubectl_apply(manifest="""
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
**元数据:**
  name: letsencrypt-staging
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: admin@example.com
    privateKeySecretRef:
      name: letsencrypt-staging-key
    solvers:
    - http01:
        ingress:
          class: nginx
""")

# 生产环境
kubectl_apply(manifest="""
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
**元数据:**
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: admin@example.com
    privateKeySecretRef:
      name: letsencrypt-prod-key
    solvers:
    - http01:
        ingress:
          class: nginx
""")

创建自签名签发器

kubectl_apply(manifest="""
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
**元数据:**
  name: selfsigned
spec:
  selfSigned: {}
""")

证书请求

# 列出证书请求
certmanager_certificaterequests_list_tool(namespace="default")

# 获取请求详情(用于调试)
certmanager_certificaterequest_get_tool(
    name="my-tls-xxxxx",
    namespace="default"
)

故障排查

证书未就绪

1. certmanager_certificate_get_tool(name, namespace)  # 检查状态
2. certmanager_certificaterequests_list_tool(namespace)  # 检查请求
3. get_events(namespace)  # 检查事件
4. # 常见问题:
   # - 签发器未就绪
   # - DNS 质询失败
   # - Let's Encrypt 频率限制

签发器未就绪

1. certmanager_clusterissuer_get_tool(name)  # 检查状态
2. get_events(namespace="cert-manager")  # 检查事件
3. # 常见问题:
   # - 凭据无效
   # - 网络问题
   # - 配置无效

Ingress 集成

# 通过 Ingress 注解自动获取证书
kubectl_apply(manifest="""
apiVersion: networking.k8s.io/v1
kind: Ingress
**元数据:**
  name: my-ingress
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
  - hosts:
    - app.example.com
    secretName: app-tls
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
""")

相关技能

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor