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

CKA备考:如何获取Kubernetes各类工作负载的完整YAML配置

针对CKA考试中Kubernetes资源配置的实用解决方法

一、快速生成Ingress(或任意资源)配置文件的方法

首先纠正你的误解:-o yaml/-o json参数适用于所有Kubernetes资源类型,不管是工作负载(Deployment、StatefulSet)、网关类(Ingress、Service)还是配置类(ConfigMap、Secret)都能用。你执行k get ingress -A没结果,只是因为当前集群里还没有创建任何Ingress资源而已。

快速生成配置文件的两种常用方式:

  • 生成空的资源模板
    用kubectl create命令加上--dry-run=client -o yaml参数,就能直接输出该资源的基础YAML模板,不需要真的创建资源。比如Ingress的话:

    kubectl create ingress my-ingress --rule="foo.bar.com/*=my-service:80" --dry-run=client -o yaml
    

    这个命令会生成一个带基础路由规则的Ingress YAML,你可以在此基础上修改补充参数(比如TLS、注解annotations等)。

    如果要生成完全空的模板(只有必填结构),可以用:

    kubectl create ingress my-ingress --dry-run=client -o yaml
    
  • 从现有资源导出配置
    如果你有参考的同类型资源(比如集群里其他namespace的Ingress,或者之前创建过的),可以用kubectl get导出:

    kubectl get ingress example-ingress -n default -o yaml --export > ingress-template.yaml
    

    注:--export参数会去掉资源的状态(status)字段和集群自动生成的元数据,只保留可复用的配置部分,适合作为模板。

二、记住Ingress核心参数的技巧(CKA考试高频考点)

Ingress配置的核心结构其实很固定,你只要记住以下几个必填/高频字段:

apiVersion: networking.k8s.io/v1  # 注意CKA考的v1版本,不要用旧的v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:  # 高频:比如nginx-ingress的rewrite-target、ssl-redirect等
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:  # 可选但高频:HTLS配置
  - hosts:
    - foo.bar.com
    secretName: foo-tls
  rules:  # 必填:路由规则
  - host: foo.bar.com
    http:
      paths:
      - path: /testpath
        pathType: Prefix  # v1版本必填:Prefix/Exact/ImplementationSpecific
        backend:
          service:
            name: my-service
            port:
              number: 80
  • 重点记:apiVersion必须是networking.k8s.io/v1(CKA现在考的都是v1版本,旧版本已经废弃);rules里每个路径必须指定pathType;backend指向对应的Service名称和端口。

三、解决工作负载缩进和配置遗忘的通用技巧

  • 考前强化模板记忆
    把高频资源(Deployment、Service、Ingress、ConfigMap、Secret)的基础模板手写几遍,重点记层级结构:

    • 所有资源的顶级字段都是apiVersion、kind、metadata、spec(部分有status,但考试不需要写)
    • metadata下是name、namespace、labels、annotations
    • 不同资源的spec结构不同,比如Deployment的spec下是replicas、selector、template,Ingress的spec下是tls、rules
  • 用kubectl explain查实时文档
    考试中可以直接用kubectl explain命令查看资源的字段说明,比如:

    kubectl explain ingress.spec.rules.http.paths.backend.service  # 查看Ingress后端Service的字段
    kubectl explain deployment.spec.template.spec.containers  # 查看Deployment容器的字段
    

    这个命令会输出每个字段的类型、是否必填、说明,完全不需要背,考试时直接查就行。

  • 利用kubectl的自动补全
    考试前可以开启kubectl自动补全:

    source <(kubectl completion bash)
    

    输入kubectl create ingress --后按Tab,就能看到所有可用的参数选项,帮你快速生成配置。

内容的提问来源于stack exchange,提问作者osama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:47:26