CKA考试真题(1)-- 绝对干货!

目录

前言

1. 创建rabc权限

2. 查询cpu占用率最高的pod

3. deployment扩容副本

4. pod通过label标签指定节点部署

5. 创建pv

6. 查询pod日志

7. 排查集群故障节点

8. 查看集群可用节点

9. 创建包含多个容器的pod

10. 集群节点维护


前言

17道真题难度等级

一级 rbac cpu 扩容 pod指定节点 pv pod日志 排障 查看可用节点 多容器pod 节点维护

二级 networkpolicy service  ingress  pvc

三级 sidecar 升级集群 备份还原etcd

本系列有四篇博客,本博客为一级难度篇

CKA注意事项:CKA考试注意事项--考前必看!_luo_guibin的博客-CSDN博客

第一篇:CKA认证真题(1)-- 必考_luo_guibin的博客-CSDN博客

第二篇:CKA考试真题(2)_luo_guibin的博客-CSDN博客

第三篇:CKA认证真题(3)-- 绝对干货!_luo_guibin的博客-CSDN博客

1. 创建rabc权限


Task

创建一个名为 deployment-clusterrole 且仅允许创建以下资源类型的新 ClusterRole

Deployment

StatefulSet

DaemonSet

在现有的 namespace app-team1 中创建一个名为 cicd-token 的新 ServiceAccount

限于 namespace app-team1 中,将新的 ClusterRole deployment-clusterrole 绑定到新的 ServiceAccount cicd-token


#答案

kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets

kubectl -n app-team1 create serviceaccount cicd-token

kubectl -n app-team1 create rolebinding cicd-token-rolebinding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token

rolebinding 后面的名字 cicd-token-rolebinding 随便起的,因为题目中没有要求,如果题目中有要求,就不能随便起了。

题目中写了“限于 namespace app-team1 中”,则创建 rolebinding。没有写的话,则创建 clusterrolebinding。

2. 查询cpu占用率最高的pod


Task

通过 pod label name=overloaded-cpu,找到运行时占用大量 CPU 的 pod,

并将占用 CPU 最高的 pod 名称写入文件 /opt/KUTR000401/KUTR00401.txt(已存在)。


#答案

kubectl top pod -l name=overloaded-cpu --sort-by=cpu -A

echo "查出来的 Pod Name" > /opt/KUTR000401/KUTR00401.txt

#将cpu占用最高的pod写入指定文件即可。

3. deployment扩容副本


Task

将 deployment webserver 扩展至 4 个 pods


#答案

kubectl scale deployment webserver --replicas=6

4. pod通过label标签指定节点部署


Task

按如下要求调度一个 pod:

名称:nginx-kusc00401

Image:nginx

Node selector:disk=ssd


参考文档:将 Pod 分配给节点 | Kubernetes

#答案

kubectl get nodes --show-labels | grep 'disk=ssd'
一般是已经存在的,如果不存在,任选一个节点手动新建label
kubectl label nodes node01 disk=ssd

vi label-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-kusc00401
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disk: ssd

kubectl apply -f label-pod.yaml

5. 创建pv


Task

创建名为 app-data 的 persistent volume,容量为 1Gi,访问模式为 ReadWriteMany

volume 类型为 hostPath,位于 /srv/app-data


参考文档:配置 Pod 以使用 PersistentVolume 作为存储 | Kubernetes

#答案

vi pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-data
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/srv/app-data"

kubectl apply -f pv.yaml

#按照题目更改name、容量、访问模式、目录即可,类型固定是hostPath,删除label和storageclassname属性。

6. 查询pod日志


Task

监控 pod foobar 的日志并:

提取与错误 unable-to-access-website 相对应的日志行

将这些日志行写入 /opt/KUTR00101/foobar


#答案

kubectl logs foobar | grep "unable-to-access-website" > /opt/KUTR00101/foobar

7. 排查集群故障节点


Task

名为 wk8s-node-0 的 Kubernetes worker node 处于 NotReady 状态。

调查发生这种情况的原因,并采取相应的措施将 node 恢复为 Ready 状态,确保所做的任何更改永久生效


本质原因就是wk8s-node-0的kubelet被停止运行了,重启kubelet并设置开机自启动即可。

#答案

ssh wk8s-node-0

sudo -i

systemctl start kubelet
systemctl enable kubelet

exit #退出root
exit #退出wk8s-node-0回到wk8s-node-1

8. 查看集群可用节点


Task

检查有多少 nodes 已准备就绪(不包括被打上 Taint:NoSchedule 的节点),

并将数量写入 /opt/KUSC00402/kusc00402.txt


#答案

kubectl describe nodes | grep -i Taints

echo "没有NoSchedule标记的节点数" > /opt/KUSC00402/kusc00402.txt

9. 创建包含多个容器的pod

Task

按如下要求调度一个 Pod:

名称:kucc4

app containers: 2

container 名称/images:

nginx

⚫ memcached

参考文档:Pod | Kubernetes

#更改pod的name,删除容器端口号属性,新增容器。

#答案

vi con-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: kucc4
spec:
  containers:
  - name: nginx
    image: nginx
  - name: memcached
    image: memcached

kubcctl apply -f con-pod.yaml

10. 集群节点维护


Task

将名为 ek8s-node-0 的 node 设置为不可用,并重新调度该 node 上所有运行的 pods。


#答案

kubectl cordon ek8s-node-0

kubectl drain ek8s-node-0 --ignore-daemonsets

# 但如果执行后有报错则需要加上--delete-emptydir-data --force,会强制将 pod 移除,一般用不到。
# kubectl drain node02 --ignore-daemonsets --delete-emptydir-data --force

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/69206.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Photoshop 2023 25.0beta「Mac」

Photoshop 2023是一款专业图像处理软件,它主要用于图像编辑、合成和设计等方面。 Photoshop beta创新式填充的功能特色包括: 自动识别和删除对象:该功能可以自动识别图像中的对象,并用周围的图像填充空白部分,使图像看…

oracle连表查询in后边跟另一张表中的字符串字段

今天在做通过in进行连表查询的时候发现以下问题记录下 我的需求是A,B两张表连接查询,A中有一个FOOD_TYPES字段 存的值类型为1,2,3 B表中的字段是FOOD_TYPE 存的是单个数字字符串 我需要where b.food_type in a.food_types 但是无论怎么写都…

面试热题(螺旋矩阵)

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素 一看到这个大家有没有想到 就是一个螺旋形状,那这道题我们应该怎么解决? 我们先来仔细的看,它这种螺旋形状的遍历是先【右-下-左-上】…

Zookeeper特性与节点数据类型详解

CAP&Base理论 CAP理论 cap理论是指对于一个分布式计算系统来说,不可能满足以下三点: 一致性 : 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的 特性,等同于所有节点访问同一份最新的数据副本。在一致性的需…

过去为什么在编写程序时需要在语句前面加上行号?

在过去的编程语言中,如FORTRAN和早期的BASIC,每条语句都占据一行,因此需要在语句前面加上行号。然而,行号并不仅仅表示行的序号,它实际上是一种数字标记,类似于C语言中的标签(label)…

Vue.js2+Cesium1.103.0 八、动态光墙效果

Vue.js2Cesium1.103.0 八、动态光墙效果 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"/> </template><script> /* eslint-disable no-undef */ import /utils/dynamicWallMaterialProperty.js exp…

JS逆向系列之猿人学爬虫第14题-备而后动-勿使有变

文章目录 题目地址参数分析参考jspython 调用往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/14题目难度标的是困难,主要难在js混淆部分。 参数分析 初始抓包有无限debugger反调试,可以直接hook 函数构造器过掉无限debugger Function.prototype.__construc…

第十六次CCF计算机软件能力认证

第一题&#xff1a;小中大 在数据分析中&#xff0c;最小值最大值以及中位数是常用的统计信息。 老师给了你 n 个整数组成的测量数据&#xff0c;保证有序&#xff08;可能为升序或降序)&#xff0c;可能存在重复的数据。 请统计出这组测量数据中的最大值、中位数以及最小值&am…

MySQL8是什么-MySQL8知识详解

从今天起&#xff0c;开始更新MySQL8的教程&#xff0c;今天更新MySQL8的第一篇文章&#xff0c;主要讲了MySQL8是什么、MySQL数据库的概念、MySQL的优势和MySQL的发展历史。 1、MySQL8是什么 MySQL 8是一个开源的关系型数据库管理系统。它是MySQL数据库的最新版本&#xff0c…

C#与C++交互(2)——ANSI、UTF8、Unicode文本编码

【前言】 我们知道计算机上只会存储二进制的数据&#xff0c;无论文本、图片、音频、视频等&#xff0c;当我们将其保存在计算机上时&#xff0c;都会被转成二进制的。我们打开查看的时候&#xff0c;二进制数据又被转成我们看得懂的信息。如何将计算机上的二进制数据转为我们…

摆动序列——力扣376

文章目录 题目描述贪心题目描述 贪心 int wiggleMaxLength(vector<int>& nums){int n=nums.

【学习FreeRTOS】第6章——FreeRTOS中断管理

【本篇文章的也可参考STM32中断文章http://t.csdn.cn/foF9I&#xff0c;结合着学习效果更好】 1.什么是中断 中断&#xff1a;让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断中断执行机制&#xff0c;可简单概括…

【Flutter】【基础】CustomPaint 绘画功能(一)

功能&#xff1a;CustomPaint 相当于在一个画布上面画画&#xff0c;可以自己绘制不同的颜色形状等 在各种widget 或者是插件不能满足到需求的时候&#xff0c;可以自己定义一些形状 使用实例和代码&#xff1a; CustomPaint&#xff1a; 能使你绘制的东西显示在你的ui 上面&a…

新版PMP考试中,敏捷是怎么考的?

01新版考试中的敏捷是怎么考的&#xff1f; 接下来说一下大家最为关注的敏捷内容。这次改版后&#xff0c;题目中添加了大量的敏捷题型&#xff0c;总体比重还是很高的&#xff0c;主观感觉达到了1/3。但和ACP认证相比&#xff0c;PMP中对敏捷管理技术的考察相对来说比较简单&…

Canal+Kafka实现Mysql数据同步

Canal介绍 canal [kənl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 canal可以用来监控数据库数据的变化&#xff0c;从而获得新增数据&#xff0c;或者修改的数据。 canal是应阿里巴巴存在杭…

【笔记】树状数组

【笔记】树状数组 目录 简介引入1. 直接暴力2. 维护前缀和数组总结 定义前置知识&#xff1a; lowbit ⁡ \operatorname{lowbit} lowbit 操作区间的表示方法操作单点修改前缀和查询任意区间查询 例题1: 单点修改&#xff0c;区间查询例题2: 区间修改&#xff0c;单点查询例题3:…

Maven 生成(打包)带有依赖的可以直接执行的一个 jar 包

在pom中增加如下内容 <build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><mainClass>com.example.xxx.YourClass</mainClass></manifest></…

Android系统组件——AMS,App启动中的AMS流程

AMS&#xff08;Activity Manager Service&#xff09;是Android系统中非常重要的一个组件&#xff0c;负责管理应用程序的生命周期、进程调度以及任务栈的管理等任务。本文将从AMS的原理、数据结构、SystemServer加载AMS以及App启动中的AMS流程等方面进行详细介绍&#xff0c;…

Linux固件子系统的实现机制简介

一、Linux固件子系统概述 固件是硬件设备自身执行的一段程序。固件一般存放在设备flash内。而出于成本和便利性的考虑&#xff0c;通常是先将硬件设备的运行程序打包为一个特定格式的固件文件&#xff0c;存储到终端系统内&#xff0c;通过终端系统给硬件设备进行升级。Linux内…

C#使用EmguCV播放视频

目录 一、前言 1、简介 2、测试工程代码下载链接 3、EmguCV 库文件下载链接 二、工程环境配置 1、EmguCV控件添加引用 &#xff08;1&#xff09;窗口控件添加 &#xff08;2&#xff09;相关Dll文件添加添加引用 &#xff08;3&#xff09;工程运行基础文件夹添加 &a…