【K8S】CKA题库练习16题知识总结,Kubernetes-1.32版,服务部署、暴露、存储、网络、集群修复

📅 2026/6/30 1:02:36
【K8S】CKA题库练习16题知识总结,Kubernetes-1.32版,服务部署、暴露、存储、网络、集群修复
【K8S】CKA题库练习16题知识总结Kubernetes-1.32版服务部署、暴露、存储、网络、集群修复文章目录【K8S】CKA题库练习16题知识总结Kubernetes-1.32版服务部署、暴露、存储、网络、集群修复一、CKA 需要掌握的核心能力1. 能做部署与交付2. 能做运维与排障3. 能做存储与配置管理4. 能做网络与流量治理5. 能理解调度与资源二、CKA 的核心知识点清单1. 工作负载2. 网络3. 存储4. 配置与元数据5. 调度与资源管理6. 集群管理与修复三、16 题分别考什么题型总表四、16 题的详细笔记与常用写法1. HPA 自动扩缩容2. Ingress3. sidecar4. StorageClass5. Service6. PriorityClass7. Argo CD8. PVC9. Gateway API10. NetworkPolicy11. CRD12. ConfigMap13. Calico14. requests 资源15. etcd 修复16. cri-dockerd五、复习时最值得记的操作清单这份题库最值得带走的不是每道题的固定答案而是 CKA 里反复考的那套能力模型看到题目先判断它属于哪一类资源再用最短路径把对象改对、验对。CKA 题目本质上是在考你能不能用 Kubernetes 完成部署、暴露服务、存储挂载、网络控制、集群修复和基础系统准备。参考资料1一、CKA 需要掌握的核心能力CKA 考的不是“背 YAML”而是你是否具备一套完整的 Kubernetes 操作能力。把它拆开看主要是下面这几层。1. 能做部署与交付你需要能把一个应用从“有镜像”变成“可运行服务”创建和修改Deployment调整副本数、镜像、容器端口、环境变量、资源请求使用Service对外暴露应用使用Ingress、Gateway API按域名和路径接入流量使用Helm安装标准组件常用命令kubectl create deployment nginx--imagenginx:1.27 kubectl expose deployment nginx--typeNodePort--port80--target-port80kubectl scale deployment nginx--replicas3kubectl rollout restart deployment nginx kubectl get deployment,pod,svc-owide2. 能做运维与排障你要能定位问题在“资源没建好、控制器没生效、还是节点/组件异常”用get看对象是否存在用describe看事件和调度失败原因用logs看容器输出用exec进入容器验证配置用rollout status确认发布是否完成能修复kube-apiserver、kube-scheduler、etcd、kubelet这类基础组件常用命令kubectl get nodes kubectl-nkube-system get pod kubectl describe podpod-namekubectl logspod-name-ccontainer-namekubectlexec-itpod-name--shkubectl rollout status deployment/name3. 能做存储与配置管理K8s 里最常见的“状态”不只是 Pod还有卷和配置理解PV / PVC / StorageClass会把 PVC 绑到已有 PV会给 Pod 挂载持久卷会更新ConfigMap并知道何时要重启 Pod会识别ConfigMap immutable的处理方式常用命令kubectl getpvkubectl get pvc-nmariadb kubectl get storageclass kubectl get configmap nginx-config-nnginx-static-oyaml kubectl delete configmap nginx-config-nnginx-static kubectl apply-fnginx-config.yaml4. 能做网络与流量治理这是 CKA 的高频大头核心是“让流量按你想的方式进来也按你想的方式出去”Service的ClusterIP、NodePortIngress的host、path、ingressClassNameGateway、HTTPRouteNetworkPolicy的 ingress / egress 控制CNI安装与网络策略支持常用命令kubectl get ingressclass kubectl get ingress-Akubectl get networkpolicy-Akubectl get ns frontend backend --show-labels kubectl get pod-nfrontend --show-labels kubectl get pod-nbackend --show-labels5. 能理解调度与资源你要知道 Pod 为什么能起、为什么起不来、为什么被挤掉resources.requests和limitsPriorityClassHPAtaint / tolerationaffinity / anti-affinity节点资源不足时如何调整请求值常用命令kubectl get priorityclass kubectl describenodenode-namekubectl-nautoscale get hpa kubectl-npriority edit deployment busybox-logger二、CKA 的核心知识点清单这部分可以当成你的复习目录。题库中的考点基本都能归到下面这些对象上。每个对象后面我都补了一个最短解释先知道它是什么再去看命令会更顺。1. 工作负载PodKubernetes 里最小的运行单元真正承载容器的地方一个 Pod 里可以有一个或多个容器。Deployment管理无状态应用的控制器负责创建副本、滚动更新、回滚和自愈。ReplicaSet负责维持固定数量的 Pod通常由 Deployment 间接管理考试里更多是理解它的作用。DaemonSet保证每个节点上都跑一个 Pod适合日志、监控、网络插件这类节点级任务。StatefulSet用于有状态应用Pod 名字、顺序和存储都更稳定适合数据库、消息队列。Job / CronJobJob用来跑一次性任务CronJob用来按时间周期执行任务。sidecar并置辅助容器和主容器共享网络和存储常用于日志收集、代理、同步文件。HPAHorizontal Pod Autoscaler根据 CPU 或其他指标自动调整 Pod 副本数。重点能力改模板改副本改镜像改端口改容器挂载做自动扩缩容2. 网络Service给一组 Pod 提供稳定访问入口负责服务发现和负载均衡。Ingress基于域名和路径把外部流量转到 Service常用于 HTTP/HTTPS 入口。Gateway比 Ingress 更现代的流量入口模型和HTTPRoute配合使用。HTTPRoute定义具体路由规则决定请求怎么转发到后端服务。NetworkPolicy控制 Pod 之间能不能互相访问用来做最小授权网络策略。CNI容器网络接口插件负责 Pod 网络连通性和是否支持 NetworkPolicy。重点能力暴露服务路由域名和路径做最小授权网络访问安装支持策略的网络插件3. 存储PVPersistentVolume集群级别的持久卷表示一块真实或虚拟存储。PVCPersistentVolumeClaim用户对存储的申请Pod 通常通过 PVC 间接使用 PV。StorageClass定义动态供给存储的模板和策略也能设置默认存储类。emptyDirPod 生命周期内的临时共享目录Pod 删除后数据就没了。卷挂载把存储挂到容器里的指定路径常用于数据目录、配置目录、日志目录。重点能力绑定已有 PV修改storageClassName默认 StorageClass把 PVC 接到 Deployment4. 配置与元数据ConfigMap保存普通配置文本比如 NGINX 参数、环境变量、配置文件片段。Secret保存敏感信息比如密码、token、证书。annotations给资源附加说明性元数据通常不参与选择器匹配。labels给资源打标签方便筛选、选择器匹配和策略控制。namespace命名空间用来隔离资源和控制管理边界。重点能力用标签筛选对象用 namespace 隔离资源更新配置并触发生效5. 调度与资源管理PriorityClass定义 Pod 的优先级决定资源紧张时谁先被调度、谁先活下来。requests / limits资源请求和上限请求影响调度限制影响运行时使用。taints / tolerations节点污点和容忍度用来控制哪些 Pod 能上哪些节点。nodeSelector按节点标签做简单定向调度。affinity更灵活的亲和和反亲和规则用来控制调度偏好。重点能力让工作负载按优先级运行给出合理资源请求确保 Pod 能调度成功6. 集群管理与修复etcdKubernetes 的数据存储后端控制面状态都依赖它。kube-apiserver集群入口kubectl最终都要访问它。kube-scheduler负责决定 Pod 调度到哪个节点。kubelet节点上的核心代理负责让 Pod 在本机运行起来。cri-dockerdDocker 时代的容器运行时适配层给 kubeadm 使用。系统参数sysctlLinux 内核参数影响转发、网络和连接跟踪。重点能力看懂静态 Pod 清单修复控制面组件恢复节点和集群状态准备底层系统环境三、16 题分别考什么题型总表下面这张表更适合你复习时快速对照。它把 16 题拆成“考点类型 核心能力 常见操作”。序号题目类型主要考点核心能力1HPA 自动扩缩容HPA、CPU 阈值、stabilization window会做自动扩缩容和参数调整2IngressIngress、ingressClassName、path rewrite会按域名路径暴露服务3sidecarDeployment、并置容器、日志采集会改 Pod 模板并加 sidecar4StorageClassStorageClass、默认类、WaitForFirstConsumer会创建存储类并设默认5ServiceService、NodePort、containerPort会把 Deployment 暴露成服务6PriorityClassPriorityClass、priorityClassName会配置 Pod 优先级7Argo CDHelm、repo add、template、install会用 Helm 安装标准组件8PVCPVC、PV、Deployment 挂载卷会恢复有状态工作负载9Gateway APIGateway、HTTPRoute、HTTPS会从 Ingress 迁移到 Gateway10NetworkPolicy命名空间/Pod 标签、默认拒绝策略会写最小授权网络策略11CRDkubectl get crd、kubectl explain会查看自定义资源定义12ConfigMapNGINX 配置、immutable、重启生效会更新配置并触发生效13CalicoCNI 安装、NetworkPolicy 支持会安装支持策略的 CNI14requests 资源resources.requests、副本与配额会按节点资源调 Pod 请求15etcd 修复静态 Pod、etcd、kube-scheduler会修复控制面故障16cri-dockerddpkg、systemctl、sysctl会准备 Kubernetes 底层系统四、16 题的详细笔记与常用写法1. HPA 自动扩缩容典型要点在指定 namespace 创建 HPA绑定已有 Deployment设置 CPU 使用率目标设置最小和最大副本数调整scaleDown.stabilizationWindowSeconds常用命令kubectl-nautoscale autoscale deployment apache-server --cpu-percent50--min1--max4kubectl-nautoscale edit hpa apache-server kubectl-nautoscale describe hpa apache-server常见 YAML 片段behavior:scaleDown:stabilizationWindowSeconds:302. Ingress核心是域名 路径 Service 端口 IngressClass。kubectl get ingressclass kubectl get ingress-nsound-repeater-oyaml kubectl apply-fingress.yamlcurlhttp://example.org/echo常见 YAMLapiVersion:networking.k8s.io/v1kind:Ingressmetadata:name:echonamespace:sound-repeaterannotations:nginx.ingress.kubernetes.io/rewrite-target:/spec:ingressClassName:nginxrules:-host:example.orghttp:paths:-path:/echopathType:Prefixbackend:service:name:echoserver-serviceport:number:80803. sidecar核心是给现有 Deployment 增加一个日志并置容器通常会用emptyDir共享文件。kubectl get deployment synergy-leverager-oyamlsidecar.yaml kubectl apply-fsidecar.yaml kubectl logspod-name-csidecar常见 YAMLspec:template:spec:containers:-name:appimage:...volumeMounts:-name:varlogmountPath:/var/log-name:sidecarimage:busybox:stableargs:-/bin/sh--c-tail-n1-f /var/log/synergy-leverager.logvolumeMounts:-name:varlogmountPath:/var/logvolumes:-name:varlogemptyDir:{}4. StorageClass核心是创建新的StorageClass并设为默认类。kubectl get storageclass kubectl apply-fsc.yaml kubectl get storageclass常见 YAMLapiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:ran-local-pathannotations:storageclass.kubernetes.io/is-default-class:trueprovisioner:rancher.io/local-pathvolumeBindingMode:WaitForFirstConsumer5. Service核心是把 Deployment 暴露成可访问服务。kubectl-nspline-reticulator edit deployment front-end kubectl-nspline-reticulator expose deployment front-end--typeNodePort--port80--target-port80--namefront-end-svc kubectl-nspline-reticulator get svc front-end-svc-owide常见片段ports:-containerPort:80protocol:TCP6. PriorityClass先看现有用户自定义优先级再创建一个更小一点的新类。kubectl get priorityclass kubectl apply-fpriority.yaml kubectl-npriority edit deployment busybox-logger常见 YAMLapiVersion:scheduling.k8s.io/v1kind:PriorityClassmetadata:name:high-priorityvalue:999999999globalDefault:falsedescription:one lessDeployment 里加spec:template:spec:priorityClassName:high-priority7. Argo CD核心是 Helm 安装标准组件。helm repoaddargo https://argoproj.github.io/argo-helm helm repo update helm search repo argo|grepargo-cd helm template argocd argo/argo-cd--version5.5.22--namespaceargocd--setcrds.installfalse~/argo-helm.yaml helminstallargocd argo/argo-cd--version5.5.22--namespaceargocd--setcrds.installfalse kubectl-nargocd get pods8. PVC核心是根据 PV 创建 PVC再把 PVC 挂回 Deployment。kubectl getpvkubectl apply-fpvc.yaml kubectl apply-f~/mariadb-deployment.yaml kubectl-nmariadb get pvc,pod,deploy常见 PVCapiVersion:v1kind:PersistentVolumeClaimmetadata:name:mariadbnamespace:mariadbspec:accessModes:-ReadWriteOncestorageClassName:local-pathresources:requests:storage:250MiDeployment 中的卷volumes:-name:mariadb-datapersistentVolumeClaim:claimName:mariadb9. Gateway API核心是从 Ingress 迁移到 Gateway HTTPRoute同时保留 HTTPS。kubectl get ingress web-oyaml kubectl apply-fgateway.yaml kubectl apply-fhttproute.yamlcurl-Lkhttps://gateway.web.k8s.local:31443 kubectl delete ingress webGateway 示例apiVersion:gateway.networking.k8s.io/v1kind:Gatewaymetadata:name:web-gatewayspec:gatewayClassName:nginxlisteners:-name:httpsprotocol:HTTPSport:443hostname:gateway.web.k8s.localtls:mode:TerminatecertificateRefs:-name:web-certHTTPRoute 示例apiVersion:gateway.networking.k8s.io/v1kind:HTTPRoutemetadata:name:web-routespec:parentRefs:-name:web-gatewayhostnames:-gateway.web.k8s.localrules:-matches:-path:type:PathPrefixvalue:/backendRefs:-name:webport:8010. NetworkPolicy核心是“最小权限”通常要匹配 namespace label 和 pod label。kubectl get ns frontend backend --show-labels kubectl-nfrontend get pod --show-labels kubectl-nbackend get pod --show-labels kubectl apply-f~/netpol/netpol2.yaml kubectl-nbackend get networkpolicy常见策略思路允许 frontend namespace 的 Pod 访问 backend namespace 的 Pod只放行带指定 label 的 Pod不能删除默认拒绝策略11. CRD核心是查看 CRD 列表和对象说明。kubectl get crd|grepcert-manager~/resources.yaml kubectl explain certificate.spec.subject~/subject.yamlcat~/resources.yamlcat~/subject.yaml12. ConfigMap核心是修改 NGINX 配置并重启 Deployment。kubectl-nnginx-static get configmap nginx-config-oyamlnginx-config.yaml kubectl-nnginx-static delete configmap nginx-config kubectl apply-fnginx-config.yaml kubectl-nnginx-static rollout restart deployment nginx-staticcurl-k--tls-max1.2https://web.k8snginx.local常见配置ssl_protocols TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on;13. Calico核心是安装支持 NetworkPolicy 的 CNI并按集群 CIDR 配置自定义资源。wgethttps://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/tigera-operator.yaml kubectl create-ftigera-operator.yaml kubectl cluster-info dump|grep-icluster-cidrwgethttps://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/custom-resources.yaml kubectl create-fcustom-resources.yaml kubectl-ncalico-system get pod14. requests 资源核心是计算节点剩余资源并把请求值调到合理范围。kubectl-nrelative-fawn scale deployment wordpress--replicas0kubectl describenodebase kubectl-nrelative-fawn edit deployment wordpress kubectl-nrelative-fawn scale deployment wordpress--replicas3kubectl-nrelative-fawn get pod常见请求片段resources:requests:cpu:100mmemory:200Mi15. etcd 修复核心是静态 Pod 修复和组件重启。sudo-ishetcd-set.shvim/etc/kubernetes/manifests/kube-apiserver.yaml systemctl daemon-reload systemctl restart kubeletvim/etc/kubernetes/manifests/kube-scheduler.yaml kubectl get nodes kubectl-nkube-system get pod16. cri-dockerd核心是系统准备、包安装和 sysctl 持久化。sudodpkg-i~/cri-dockerd_0.3.6.3-0.ubuntu-jammy_amd64.debsudosystemctlenablecri-dockersudosystemctl start cri-dockersudosystemctl status cri-dockersudovim/etc/sysctl.confsudosysctl-p常见 sysctlnet.bridge.bridge-nf-call-iptables 1 net.ipv6.conf.all.forwarding 1 net.ipv4.ip_forward 1 net.netfilter.nf_conntrack_max 131072五、复习时最值得记的操作清单把 CKA 的能力压缩成一句话就是你能不能熟练完成下面这些动作kubectl get / describe / edit / apply / delete / scale / expose / logs /execkubectl rollout restart deployment/namekubectl get ns,pod,svc,deploy,pvc,pv,sc,ingress,networkpolicy-Akubectl explainresourcekubectl getresource-oyaml只要你能稳定完成这些操作再配合对Deployment、Service、Ingress、PVC、ConfigMap、NetworkPolicy、HPA、PriorityClass、Helm、CRD、etcd的理解CKA 的题目就不会显得散。它其实一直在考同一个能力你是不是能用 Kubernetes 把一个应用部署起来、暴露出去、挂上存储、加上策略、调好资源、并且在故障时把它救回来。