K8S的CKA考试环境和题目

2023-09-05 11:28:16

CKA考试这几年来虽然版本在升级,但题目一直没有大的变化,通过K8S考试的方法就是在模拟环境上反复练习,通过练习熟悉考试环境和考试过程中可能遇到的坑。这里姚远老师详细向大家介绍一下考试的环境和题目,需要详细资料的同学请在文章后面留言。祝大家考试成功。
在这里插入图片描述

K8S的考试环境

CKA考试环境由三台虚拟机组成,这三台虚拟机姚远老师已经建好了,需要的同学请在下面留言,主机名分别是k8s-master、k8s-node1、k8s-node2,安装的操作系统是Ubuntu,大家可能猜到了为什么不用红帽,因为版权的问题。这个考试是Linuxfoundation搞的,他们想保证纯正的开源。
在这里插入图片描述

1权限控制RBAC

考题概述:
创建名称 deployment-clusterrole 的 ClusterRole,该角色具备创建 Deployment、Statefulset、
Daemonset 的权限,在命名空间 app-team1 中创建名称为 cicd-token 的 ServiceAccount,绑定
ClusterRole 到 ServiceAccount,且限定命名空间为 app-team1。
考题解析:
需要熟悉创建 serviceaccount、clusterrole 和 rolebinding 的方法,需要限定在 ns 级别,因此最好使
用 rolebinding
参考方法:

kubectl create ns app-team1 (题库练习执行,命名空间考试系统已存在)
kubectl create serviceaccount cicd-token -n app-team1
kubectl create clusterrole deployment-clusterrole --verb=create --
resource=deployments,statefulsets,daemonsets
kubectl -n app-team1 create rolebinding cicd-clusterrole --
clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token

最后可以验证下rolebinding资源
rolebinding后面 的名字cicd-clusterrole随便起的,因为题 中没有要求,如果题 中有要求,就不能随便起了
在这里插入图片描述

2 设置节点不可

考题概述:
设置 ek8s-node-1 节点为不可 、重新调度该节点上的所有 pod
考题解析:
cordon节点,drain 节点,需要忽略 daemonsets 并清除 local-data,否则可能 法驱逐 pod
参考 法:

切换 context
kubectl cordon ek8s-node-1
kubectl drain ek8s-node-1 --ignore-daemonsets --delete-emptydir-data --
force
完成后一定要通过 get nodes加以确认

3 升级 kubeadm

考题概述:

升级 master 节点为1.22.2,升级前确保drain master 节点,不要升级worker node 、容器
manager、 etcd、 CNI插件、DNS 等内容;
考题解析:
首先 cordon、drain master节点,其次升级 kubeadm 并 apply 到1.22.2版本,升级 kubelet 和
kubectl
参考方法:

切换 context
kubectl get nodes
ssh mk8s-master-0
kubectl cordon mk8s-master-0
kubectl drain mk8s-master-0 --ignore-daemonsets --force
apt-mark unhold kubeadm kubectl kubelet
apt-get update && apt-get install -y kubeadm=1.22.2-00 kubelet=1.22.2-00
kubectl=1.22.2-00
apt-mark hold kubeadm kubectl kubelet
kubeadm upgrade plan
kubeadm upgrade apply v1.22.2 --etcd-upgrade=false
systemctl daemon-reload && systemctl restart kubelet
//kubectl -n kube-system rollout undo deployment coredns 有些朋友建议
rollout coredns,
kubectl uncordon mk8s-master-0
检查master节点状态以及版本
kubectl get node

注意:随着K8S版本的更新,升级的版本号也会有变化,只需根据考题调整升级命令对应的版本号即
可。
在这里插入图片描述
需要更多题库请留言。

更多推荐

什么是 BSD 协议?

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。如果再发布的只是二进制类

【Redis】使用rpm包安装redis

背景说明公司环境处于内网,某同事需要安装redis,如果使用通过源码编译安装redis,很多编译工具如gcc就需要先安装,但处于内网安装起来不太方便,当然也不是不可以。我们此处就选用通过redis的rpm包进行安装。rpm包查找及下载找一台可以上互联网的干净服务器(干净的目的是防止以前有些包安装过,就不会再下载),最好

MFC-GetAdaptersAddresses获取网卡信息

需要:#pragmacomment(lib,"IPHLPAPI.lib")GetAdaptersAddresses函数参数说明ULONGbufferSize=0;ULONGresult=::GetAdaptersAddresses(AF_UNSPEC,GAA_FLAG_INCLUDE_PREFIX,nullptr,nu

以php为后端,vue为前端的租房微信小程序

租房微信小程序是一个非常有用的应用,它不仅可以帮助人们快速找到心仪的房屋,还可以提供便捷的房屋租赁服务。本文将介绍如何使用PHP作为后端语言和Vue作为前端框架来开发一个租房微信小程序。环境搭建首先,需要在本地或云上安装并配置PHP和Vue环境。可以使用XAMPP、WAMP、MAMP等集成的开发环境,也可以手动安装和配

stm32学习笔记:GPIO输入

1、寄存器输入输出函数//读取输入数据寄存器某一个端口的输入值,参数用来指定某一个端口,返回值是uint8_t类型,用来代表高低电平(读取按键的值)uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);//读取整个输入数据寄存器,参数用来指定

在使用SpringBoot时遇到的异常总结(持续更新...)

文章目录异常MyBatisjava.sql.SQLIntegrityConstraintViolationException:Cannotaddorupdateachildrow:aforeignkeyconstraintfailsMybatis-Plus查询语句无故自动加条件参考文献因为平时在写SpringBoot项

Centos7安装mysql详细过程

官网https://dev.mysql.com/downloads/repo/yum/1、下载安装包cd/optwgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm2、安装MYSQL源yum-yinstallmysql57-co

若依DataScopeAspect数据权限解析和ew.customSqlSegment源码解析

目录一、DataScopeAspect使用场景二、ew.customSqlSegment${ew.customSqlSegment}build:this.normal:queryWrapperwhere条件不为空的时候,才有normalget第二次进来add(),已经拼接完ew.customSqlSegment了,因为

人工智能术语翻译(四)

文章目录摘要MNOP摘要人工智能术语翻译第四部分,包括M、N、O、P开头的词汇!M英文术语中文翻译常用缩写备注MachineLearningModel机器学习模型MachineLearning机器学习ML机器学习MachineTranslation机器翻译MTMacroAverage宏平均Macro-F1宏F1Macr

FFmpeg入门及编译

文章目录前言一、FFmpeg简介二、基本组成1、封装模块-AVFormat2、编解码模块-AVCodec3、滤镜模块-AVFilter4、视频图像转换计算模块-swscale5、音频转换计算模块-swresample6、AVUtil-核心工具库7、AVDevice-硬件采集,加速,显示三、命令行工具四、FFmpeg环境

jvm深入研究文档--java中的堆--详解!--jvm底层探索(1)

阿丹:JVM的内存分区包括以下几个部分:堆区(Heap)-这是JVM的主要部分,用于存储实例对象和大多数Java对象,如数组和用户定义的类。方法区(MethodArea)-这是线程私有的,用于存放类对象(加载好的类)。栈区(Stack)-这是线程私有的,包括虚拟机栈和本地方法栈。虚拟机栈用于保存调用关系的内存空间,而本

热文推荐