• 2024年最新 CKA 试题题库及答案详解 导航页


    1. Dokcer 基础相关

    2. CKA 相关学习

    CKA(Certified Kubernetes Administrator)是由 Cloud Native Computing Foundation(CNCF)提供的一项认证考试,旨在验证个人在 Kubernetes 群集管理方面的技能和知识。通过考试取得 CKA 认证可以证明个人具备独立管理 Kubernetes 环境的能力。

    CKA 考试的主要内容包括但不限于以下几个方面:

    • 集群架构和安装: 理解 Kubernetes 的架构和组件,并能够安装和配置 Kubernetes 群集。

    • 应用工作负载: 管理容器化应用程序的部署、扩展和更新,以及配置应用程序的资源限制和调度规则。

    • 集群维护: 实施备份和恢复策略、监控和故障排除 Kubernetes 群集,并进行安全审计和更新管理。

    • 网络: 配置和管理 Kubernetes 网络、服务和负载均衡,确保网络的可靠性和安全性。

    • 存储: 配置持久存储和卷,以及管理存储资源和存储类别。

    • 安全: 管理 Kubernetes 集群的安全设置,包括身份验证、授权、网络安全和安全策略。

    分数占比: 存储(Storage)10%、 故障排除(Troubleshooting)30%、 工作负载和调度(Workloads & Scheduling)15%、 集群架构、安装和配置(Cluster Architecture, Installation & Configuration)25%、服务和网络(Services & Networking)20%

    1. 权限控制 RBAC 4分

    RBAC( 基于角色的访问控制)主要用于向指定用户或用户组的权限管理,主要考点是理解和操作 Kubernetes 中的 RBAC 和命名空间,以及如何创建、绑定和限制资源的权限。

    解题思路

    进入题目指定集群 ——> 创建集群作用域并赋予权限 ——> 创建身份验证令牌 ——> 将作用域绑定在身份令牌上

    # ClusterRole 相关操作
    $ kubectl  create / get / describe / delete clusterrole(s) <clusterrole-name> 
    
    # 考试用参数
     -  --verb # 用于指定具体的操作权限
     -  --resource # 限制对特定资源的操作权限
    
    # ServiceAccount 相关操作
    $ kubectl create / get / describe serviceaccount(s) --namespace=<namespace>
    
    # 考试用参数
     - -n	# 用于指定 Namespace
     - --clusterrole	# 指定要绑定的 ClusterRole 的名称
     - --serviceaccount		# 用于指定要绑定的 ServiceAccount 的名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2. 扩展 Deployment 副本数量 4分

    主要考点 : Deployment

    Deployment 是用于定义和管理 Pod 的控制器对象,主要在于使用 Kubernetes 中的 Deployment 对象来进行扩展,并确保扩展后的 Pod 数量达到要求。

    解题思路

    进入题目指定集群 ——> 查看当前部署副本数量 ——> 扩展

    # Deployment 相关操作
    $ kubectl describe / get / scale / delete deployment(s) <deployment-name>
    
    # 考试用参数
     - --replicas	# 用于设置副本数量
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 配置网络策略 NetworkPolicy 7分

    主要考点 : NetworkPolicy

    NetworkPolicy 用于定义和管理网络访问策略,通过配置策略可以定义规则以限制进出 Pod 的网络流量。

    解题思路

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: networking.k8s.io/v1	# 指定使用的 Kubernetes API 版本
    kind: NetworkPolicy		# 声明配置为 NetworkPolicy 资源
    metadata:		# 元数据  用于定义 NetworkPolicy 的名称和命名空间
      name: test-network-policy
      namespace: default
    spec:		# 定义规则与策略
      podSelector:		# 选择应用 NetworkPolicy 的目标 Pod
        matchLabels:		# 匹配标签
          role: db
      policyTypes:		# 策略类型
      - Ingress		# 允许入站流量
      - Egress		# 允许出站流量
      ingress:		# 入站规则
      - from:		# 允许流量来源
        - ipBlock:		# 允许来自 IP 段的流量
            cidr: 172.17.0.0/16
            except:		# 排除不允许的 IP 段
            - 172.17.1.0/24
        - namespaceSelector:		# 允许来自特定命名空间的流量
            matchLabels:
              project: myproject
        - podSelector:		# 允许来自特定标签的 Pod
            matchLabels:
              role: frontend
        ports:
        - protocol: TCP
          port: 6379
      egress:		# 出站规则,允许从 Pod 发出的流量
      - to:		# 指定允许流量去往的目标
        - ipBlock:		# 指定允许去往的 IP 段
            cidr: 10.0.0.0/24
        ports:		# 指定允许的端口和协议
        - protocol: TCP
          port: 5978
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    4. 查看 Pod 的 CPU 5分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 根据题目要求排序显示 ——> 将查询结果写入指定文件

    # Pod 相关操作
    $ kubectl get / describe / delete / top pod(s) <pod-name>
    
    • 1
    • 2

    5. 创建 Ingress 7分

    主要考点 : Ingress

    Ingress 是一种资源对象,用于管理外部到 Kubernetes 集群内服务的访问。

    解题思路

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: networking.k8s.io/v1		# 指定 Kubernetes 中使用的 API 版本
    kind: Ingress		# 指定对象的类型
    metadata:	# 包含有关对象的元数据信息
      name: minimal-ingress
      annotations:		# 配置 Nginx Ingress 控制器的重写目标
        nginx.ingress.kubernetes.io/rewrite-target: /
    spec:		# 指定了 Ingress 对象的规范,即其配置
      ingressClassName: nginx-example 		# 指定要使用的 Ingress 控制器的类别或类型
      rules:		# 定义路由规则
      - http:
          paths:		# 定义了针对特定路径的路由规则列表
          - path: /testpath
            pathType: Prefix		# 指定路径的类型  "Prefix"(前缀匹配)  "Exact"(精确匹配)
            backend:		# 指定后端服务
              service:
                name: test
                port:
                  number: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    6. 暴露服务 Service 7分

    主要考点 : Deployments

    Deployments 是一种资源对象,用于定义和管理容器化应用程序的部署过程。它提供了一种声明式的方式来定义、创建、更新和管理应用程序的部署。

    解题思路

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: apps/v1 		# 制定 Kubernetes API 的版本
    kind: Deployment		# 指定对象的类型
    metadata:		# 元数据部分
      name: nginx-deployment
      labels:		# 指定 Deployments 对象的标签
        app: nginx
    spec:		# 指定 Deployments 的规范部分
      replicas: 3		# 指定要创建的 Pod 的副本数量
      selector:		# 指定用于选择要控制的 Pod 的标签选择器
        matchLabels:		# 匹配 Pod 标签的规则
          app: nginx
      template:		# 指定要创建的 Pod 的模板数据
        metadata:
          labels:
            app: nginx
        spec:
          containers:		# 指定容器的配置信息
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    7. 调度 Pod 到指定节点 4分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    8. 查看可用节点数量 4分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 根据题目要求筛选显示 ——> 将查询结果写入指定文件

    # Pod 相关操作
    $ kubectl get / describe / delete / top pod(s) <pod-name>
    
    • 1
    • 2

    9. 创建多容器的 Pod 4分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    10. 创建 PV 4分

    主要考点 : PersistentVolume

    在 Kubernetes 中,PersistentVolume(持久卷)是一种资源对象,用于抽象底层存储的细节,提供了一种统一的方式来管理持久化存储,并使存储资源可以被 Pod 访问。

    解题思路
    # PV 相关操作命令
    $ kubectl get / describe / delete 
    
    • 1
    • 2

    进入题目指定集群 ——> 官网复制默认配置 ——> 根据题目要求修改配置 ——> 执行该配置文件
    默认 yaml 如下

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv0003
    spec:
      capacity:		# 指定持久卷的容量
        storage: 5Gi		# 指定存储容量大小
      volumeMode: Filesystem	# 指定持久卷的卷模式
      accessModes:		# 指定持久卷的访问模式
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Recycle		# 指定持久卷的回收策略
      storageClassName: slow		# 指定持久卷的存储类名称
      mountOptions:
        - hard
        - nfsvers=4.1
      nfs:		# 指定 NFS 类型的持久卷的详细信息
        path: /tmp
        server: 172.17.0.2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    11. 创建 PVC 7分

    主要考点 : PersistentVolumeClaim

    PersistentVolumeClaim 是 Kubernetes 中的一种资源对象,用于请求持久化存储资源。当应用程序需要使用持久化存储时,可以创建一个 PersistentVolumeClaim,该声明描述了对存储的需求,比如存储大小和访问模式等。

    解题思路
    # PV 相关操作命令
    $ kubectl get / describe / delete 
    
    • 1
    • 2

    进入题目指定集群 ——> 官网复制默认配置并根据题目要求修改配置参数 ——> 创建 pod 节点并将 pvc 赋予到 pod 节点上 ——> 使用 record 参数按题目要求修改 pvc 参数

    12. 查看 Pod 日志 5分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 将日志写入指定文件中

    13. 使用 Sidecar 代理容器日志 7分

    主要考点 : 日志架构

    在应用程序的 Pod 中,包含专门记录日志的边车(Sidecar)容器,该方案是将日志记录功能与应用程序容器分离开来,以确保日志记录不会影响应用程序的性能或稳定性,并且使得日志记录的配置更加灵活和可控。

    解题思路

    进入题目指定集群 ——> 导出现有 pod 的配置参数 ——> 根据题目要求修改配置参数 ——> 删除原有 pod 节点,重新添加

    14. 升级集群 7分

    主要考点 : 集群升级

    从高层规划的角度看,要执行的步骤是:

    • 升级控制平面
    • 升级集群中的节点
    • 升级 kubectl 之类的客户端
    • 根据新 Kubernetes 版本带来的 API 变化,调整清单文件和其他资源
    解题思路

    进入题目指定集群 ——> 驱逐主节点并远程连接至主节点 ——> 查找指定版本的 kubeadm 并安装 ——> 执行 kubeadm 升级计划 ——> 升级 kubelet 并重启服务 ——> 升级kubectl ——> 回退到从节点并重新加入主节点

    15. 备份还原 etcd 7分

    主要考点 : etcdctl

    etcd 是 一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

    解题思路

    进入题目指定集群 ——> 制作快照 ——> 修改 etcd 配置还原快照 (不做扣四分)

    16. ※ 排查集群中故障节点 13分

    主要考点 : 排查故障

    白给分

    解题思路

    进入题目指定集群 ——> ssh 连接故障节点 ——> 重启 kublet 并配置自动启动 ——> 回退至 node01 节点

    题目分数高,操作难度低,建议先做

    17. 节点维护 4分

    主要考点 : Pod

    在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

    解题思路

    进入题目指定集群 ——> 暂停节点调度 ——> 驱逐节点


    有 CKA 相关问题可评论留言 订阅点赞关注可即使查阅最新文章更新

  • 相关阅读:
    【好文鉴赏】优秀的后端应该有哪些开发习惯
    【Git 教程系列第 26 篇】Mac 升级系统到 Ventura 后,Git 公钥报 Permission denied 错误问题的解决方案
    JS实现复制富文本到剪贴板/粘贴板的最佳实践
    项目二--01:基于nginx、keepalived的高可用集群之负载均衡
    Handler-线程间通信
    cpp primer plus笔记06-函数
    【CBAM||目标识别||注意力机制||gated卷积】Convolutional Block Attention Module
    reflow-回流 和 repaint-重绘
    无人机倾斜摄影测量技术标准及关键技术研究
    SpringBoot快速部署(2)—不使用docker的常规方法
  • 原文地址:https://blog.csdn.net/weixin_43887369/article/details/138065525