CKA真题:题目和解析-1
所有命令都验证过,有更好的方式,欢迎留言~~~
CKA 习题和真题汇总
CKA考试经验:报考和考纲
CKA :2019年12月英文原题和分值
- CKA考试习题:K8S基础概念--API 对象
- CKA考试习题:调度管理- nodeAffinity、podAffinity、Taints
- CKA考试习题:K8S日志、监控与应用管理
- CKA考试习题:网络管理-Pod网络、Ingress、DNS
- CKA考试习题:存储管理-普通卷、PV、PVC
- CKA考试习题:安全管理--Network Policy、serviceaccount、clusterrole
- CKA考试习题:k8s故障排查
- CKA真题:题目和解析-1
- CKA真题:题目和解析-2
- CKA真题:题目和解析-3
- CKA真题:题目和解析-4
- CKA真题:题目和解析-5
- CKA真题:题目和解析-6
CKA真题:手动配置TLS BootStrap
更多CKA资料或交流:可加 wei xin :wyf19910905
答题技巧
避免手敲yaml,能不手敲yaml的,就别手敲,尽量从文档上复制,手敲的效率太低了,碰上终端响应慢,那是时间的杀手!!
使用命令补全: source <(kubectl completion bash)
使用别名 :
# vim ~/.bashrc# 添加 alias k='kubectl' alias kgp='kubectl get pods' alias kgs='kubectl get svc'# source ~/.bashrc
环境检查
集群版本:$ kubectl version
集群整体状态:
$ kubectl cluster-info更多集群信息:
$ kubectl cluster-info dump集群组件状态:
$ kubectl get componentstatus集群主控节点判断(ROLES里是否有master信息):
$ kubectl get node集群安装方式判断(kubeadm还是二进制)
$ 查看/etc/kubernetes/manifests 里有没有etcd、kube-apiserver.yaml、kube-controller-manager.yaml、schedule.yaml,如果有这4个文件,则是以kubeadm方式安装,实现方式为静态Pod方式实现
集群当前上下文:kubectl config current-context
集群上下文切换:kubectl config set-context gce --user=cluster-admin
尽量使用命令创建Pod、deployment、service
#创建Pod
kubectl run <podname> --image=<imagename> --generator=run-pod/v1 -n <namespace>
#创建Deployment
kubectl run <deploymentname> --image=<imagename> --generator=deployment/v1beta1 -n <namespace>
#暴露Service
kubectl expose deployment/<deploymentname> --type="NodePort" --port 8080 --name=<svcname>
搜索文档内容kubeclt结合grep或egrep
$ kubectl get nodes -o yaml | egrep '\sname:|cpu:|memory:'name: minikube
cpu: "2"
memory: 2417860Ki
cpu: "2"
memory: 2520260Ki
养成使用--dry-run、kubectl apply -f、kubectl delete -f的习惯,同时将答案和yaml写入到文件里,方便根据命令模板修改yaml,以及后面检查答案时重做题目。举个例子,使用run命令忘记增加namespace了
#初次生成 kubectl run <podname> --image=<imagename> --restart=Never --dry-run -o yaml > <题目名称>.yaml #应用yaml kubectl apply -f <题目名称>.yaml #审题错了,删除之前做的结果 kubectl delete -f <题目名称>.yaml #修改命令或修改yaml重新执行kubectl apply -f
见到不懂或忘记的命令参数,甭管什么kubectl,etcdctl的命令,盘他 -h,-h是万能的。里面有示例。(还有kubectl explain)
最后,考试环境中一定要留意k8s环境和尤其是主机名和用户名,默认可以使用ssh 进入 node, 进入node做完题目后记得退出(exit),不然节点内是无法ssh到下一个题目的node当中去的,节点内终端一般显示student@<worknodename>
考试注意:
注意:考试中一共有24题,
除“给出一个集群,把一个节点以TLS方式加入到集群(最长的那题)”以外(难度较大建议放弃), 其他23题全部按这个题型排列,一题一题做下去即可。
考试集群
注意切换集群上下文,每道题目都会给出提示
k8s集群:
k8s-master-0
k8s-node-0
k8s-node-1
wk8s集群:
wk8s-master-0
wk8s-node-0
wk8s-node-1
1、统计pod错误日志
Set configuration context $ kubectl config use-context k8s
Monitor the logs of Pod foobar and Extract log lines corresponding to error unable-to-access-website Write them to /opt/KULM00201/foobar
监控Pod名称为foobar 的日志,并提取与无法访问错误对应的日志行,将它们写入/opt/KULM00201/foobar
答:
kubectl logs foobar | grep 'unable-to-access-website' > /opt/KULM00201/foobar
扩展示例
1.1 监控 foobar Pod 的日志,提取 pod 相应的行'error'写入到/logs 文件中
kubectl logs foobar | grep error > /log
2、排序
Set configuration context $ kubectl config use-context k8s
List all PVs sorted by name,saving the full kubectl output to /opt/kUCC0010/my_volumes. Use kubectl‘s own functionally for sorting the output,and do not mainpulate it any further
列出所有按名称排序的pv,将完整的kubectl输出保存到a。使用kubectl函数对输出进行排序,并且不再进一步操作它。
答:
kubectl get pv --sort-by=.metadata.name > /opt/KUCC0010/my_volumes
3、Daemonset
Set configuration context $ kubectl config use-context k8s
- Ensure a single instance of Pod nginx is running on each node of the kubernetes cluster where nginx also represents the image name which has to be used.
- Do no override any taints currently in place.
- Use Daemonset to complete this task and use ds.kusc00201 as Daemonset name.
确保在kubernetes集群的每个节点上运行一个Pod nginx实例,其中nginx还表示必须使用的镜像名称。
不要覆盖任何当前存在的污点( 不要有tolerations)
使用Daemonset 完成此任务,并使用ds.kusc00201作为Daemonset名称
答:
如何调度 Daemon Pod
正常情况下,Pod 运行在哪个机器上是由 Kubernetes 调度器来选择的。然而,由 Daemon Controller 创建的 Pod 已经确定了在哪个机器上(Pod 创建时指定了
.spec.nodeName
),因此:
- DaemonSet Controller 并不关心一个节点的
unschedulable
字段。- DaemonSet Controller 可以创建 Pod,即使调度器还没有启动,这对集群启动是非常有帮助的。
Daemon Pod 关心 Taint 和 Toleration,它们会为没有指定
tolerationSeconds
的node.kubernetes.io/not-ready
和node.alpha.kubernetes.io/unreachable
的 Taint,创建具有NoExecute
的 Toleration。这确保了当 alpha 特性的
TaintBasedEvictions
被启用时,发生节点故障,比如网络分区,这时它们将不会被清除掉(当TaintBasedEvictions
特性没有启用,在这些场景下也不会被清除,但会因为 NodeController 的硬编码行为而被清除,而不会因为 Toleration 导致被清除)
方法1
vim.3daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:name: ds.kusc00201
spec:selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- name: nginximage: nginx
kubectl apply -f 3daemonset.yaml
方法2
手写yaml太麻烦,由于damonSet的格式和Deployment格式差不多,可以先创建Deploy,再修改,这样速度会快一点
#先创建一个deployment的yaml模板
kubectl run nginx --image=nginx --dry-run -o yaml > 3.yaml
#将yaml改成DaemonSet
vi 3.yaml
#修改apiVersion和kind
#apiVersion: extensions/v1beta1
#kind: Deployment
apiVersion:apps/v1
kind: DaemonSet
metadata:creationTimestamp: nulllabels:run: nginxname: nginx
spec:
#去掉replicas
# replicas: 1selector:matchLabels:run: nginx# 去掉strategy# strategy: {}template:metadata:creationTimestamp: nulllabels:run: nginxspec:containers:- image: nginxname: nginxresources: {}
# 去掉status
#status: {}
官网参考链接:https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
4、init容器
Set configuration context $ kubectl config use-context k8s
Perform the following tasks Add an init container to lumpy-koala (which has been defined in spec file /opt/kucc00100/pod-sepc-KUCC00100.yaml)
The init container should create an empty file named /workdir/calm.txt。
If /workdir/calm.txt is not be detected,the Pod should exit. Once the spec file has been updated with the init container definition, the Pod should be created.
执行以下任务,
向lumpy—koala添加一个init容器(已在/opt/kucc00100/pod-spec-kucc00100.yaml中定义)
init容器应该创建一个名为/workdir/calm.txt的空文件
如果/workdir/calm.txt没有检测到,Pod应该退出
一旦使用init容器定义更新了 spec文件,就应该创建Pod
考点:init Container。要用到livenessProbes
答:
vim /opt/kucc00100/pod-spec-KUCC00100.yaml
在最后加上
initContainers:- name: init-cimage: busyboxcommand: ["/bin/sh", "-c", "touch /workdir/calm.txt"]
cat pod-sepc-KUCC00100.yaml
apiVersion: v1
kind: Pod
metadata:name: lumpy-koala
spec:volumes:- name: workdiremptyDir: {}containers:- name: checkerimage: nginxlivenessProbe:exec:command: ["test","-e","/workdir/calm.txt"]volumeMounts:- name: workdirmountPath: /workdirinitContainers:- name: init-busyboximage: busyboxcommand: ["/bin/sh", "-c", "touch /workdir/calm.txt"]volumeMounts:- name: workdirmountPath: /workdir
没有livenessProbe的写法
apiVersion: v1
kind: Pod
metadata:name: kumpy-koala
spec:volumes:- name: workdiremptyDir: {}containers:- name: checkerimage: alpinecommand: ["/bin/sh", "-c", "if [ -f /workdir/calm.txt ];then sleep 100000;else exit 1;fi"]volumeMounts:- name: workdir mountPath: /workdirinitContainers:- name: busyboximage: busybox command: ['/bin/sh', '-c', 'touch /workdir/calm.txt']volumeMounts:- name: workdir mountPath: /workdir
kubectl apply -f /opt/kucc00100/pod-spec-KUCC00100.yaml
- sh -c 它可以让 bash 将一个字串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。
test -e 该『文件名』是否存在?(常用)
官网参考链接:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
CKA真题:题目和解析-1相关推荐
- 2021年广东省专业技能大赛——大数据技术与应用 真题题目及解析(1)
2021年广东省专业技能大赛--大数据技术与应用 真题题目及解析 文章适合用户了解大数据技能大赛的考试提纲和解析步骤.文章在编写过程中难免有疏漏和错误,欢迎大佬指出文章的不足之处:更多内容请点进
- 2021年广东省专业技能大赛——大数据技术与应用 真题题目及解析(2)
2021年广东省专业技能大赛--大数据技术与应用 真题题目及解析(2) 文章适合用户了解大数据技能大赛的考试提纲和解析步骤.文章在编写过程中难免有疏漏和错误,欢迎大佬指出文章的不足之处:更多内容请点进
- 蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:7.八次求和
不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 点击下面链接 蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA.B.C ...
- CKA真题 :2019年12月英文原题和分值
所有命令都验证过,有更好的方式,欢迎留言~~~ CKA 习题和真题汇总 CKA考试经验:报考和考纲 CKA :2019年12月英文原题和分值 CKA考试习题:K8S基础概念--API 对象 CKA考试 ...
- 叉积 微分 恒等式_考研真题分章解析 | 第二章 导数与微分
高数思维 导读:本系列专辑为考研真题分章解析,主要包括:函数.极限与连续.一元函数微分学.一元函数积分学.多元函数微分学.多元函数积分学.空间解析几何.级数.微分方程等内容,共计12章,整理了近32年 ...
- 02-07GRE真题及答案解析整理
[02-07年GRE真题及答案解析整理] 2002年11月23日GRE笔考题 VERBAL部分 Section 1 填空 1. Although she gives badly _______ tit ...
- 2018全国计算机网络竞赛试题,全国2018年10月04741计算机网络原理真题以及答案解析...
<全国2018年10月04741计算机网络原理真题以及答案解析>由会员分享,可在线阅读,更多相关<全国2018年10月04741计算机网络原理真题以及答案解析(8页珍藏版)>请 ...
- 高中教师资格证笔试计算机学科知识与能力,2019下半年浙江教师资格证高中《信息技术学科知识与教学能力》真题及答案解析...
[导读]2019下半年浙江教师资格笔试已经结束了,浙江教师资格网为考生们提供2019下半年教师资格证笔试真题及答案解析. 一.单项选择题(本大题共15小题,每小题3分,共45分) 1.[答案] D 2 ...
- 计算机与网络应用word解析,全国2009年4月自学考试计算机应用基础真题及答案解析...
一.单项选择题(本大题共34小题,每小题1分,共34分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无分. 1. 在计算机中,正在运行的程序存 ...
最新文章
- 腾讯云的Ubuntu 18.04的镜像地址
- centos6.5环境 安装php5.5.30的redis扩展 介绍
- 学习Java的相关知识
- 跳台阶游戏(洛谷P5613题题解,Java语言描述)
- SpringMvc01 第一个Springmvc应用
- java puzzlers英文版_java puzzlers [更新至14.04.03]
- 初一的学生,上了初中成绩就下降了一大截,该怎么办?
- iOS 并发编程之 Operation Queues
- log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
- 增量式解析大型XML文件
- beego 静态文件处理
- 微型计算机存储器cache,微型计算机存储器系统中的Cache是
- windows10正式版官方原版镜像iso下载地址
- 起始字节 和起始位_frechlet起始距离fid的简短介绍
- 匿名内部类的格式和理解
- mysql语法错误:Every derived table must have its own alias
- Mendix开发介绍实用篇(一)
- 通信达股票交易接口-Java语言
- 工作N年的开发者更该写博客 —— 记参加CSDN开发者生态汇
- 如何用Sublime Text3 编译和运行Java程序