所有命令都验证过,有更好的方式,欢迎留言~~~

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相关推荐

  1. 2021年广东省专业技能大赛——大数据技术与应用 真题题目及解析(1)

    2021年广东省专业技能大赛--大数据技术与应用 真题题目及解析 文章适合用户了解大数据技能大赛的考试提纲和解析步骤.文章在编写过程中难免有疏漏和错误,欢迎大佬指出文章的不足之处:更多内容请点进

  2. 2021年广东省专业技能大赛——大数据技术与应用 真题题目及解析(2)

    2021年广东省专业技能大赛--大数据技术与应用 真题题目及解析(2) 文章适合用户了解大数据技能大赛的考试提纲和解析步骤.文章在编写过程中难免有疏漏和错误,欢迎大佬指出文章的不足之处:更多内容请点进

  3. 蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:7.八次求和

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 点击下面链接 蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA.B.C ...

  4. CKA真题 :2019年12月英文原题和分值

    所有命令都验证过,有更好的方式,欢迎留言~~~ CKA 习题和真题汇总 CKA考试经验:报考和考纲 CKA :2019年12月英文原题和分值 CKA考试习题:K8S基础概念--API 对象 CKA考试 ...

  5. 叉积 微分 恒等式_考研真题分章解析 | 第二章 导数与微分

    高数思维 导读:本系列专辑为考研真题分章解析,主要包括:函数.极限与连续.一元函数微分学.一元函数积分学.多元函数微分学.多元函数积分学.空间解析几何.级数.微分方程等内容,共计12章,整理了近32年 ...

  6. 02-07GRE真题及答案解析整理

    [02-07年GRE真题及答案解析整理] 2002年11月23日GRE笔考题 VERBAL部分 Section 1 填空 1. Although she gives badly _______ tit ...

  7. 2018全国计算机网络竞赛试题,全国2018年10月04741计算机网络原理真题以及答案解析...

    <全国2018年10月04741计算机网络原理真题以及答案解析>由会员分享,可在线阅读,更多相关<全国2018年10月04741计算机网络原理真题以及答案解析(8页珍藏版)>请 ...

  8. 高中教师资格证笔试计算机学科知识与能力,2019下半年浙江教师资格证高中《信息技术学科知识与教学能力》真题及答案解析...

    [导读]2019下半年浙江教师资格笔试已经结束了,浙江教师资格网为考生们提供2019下半年教师资格证笔试真题及答案解析. 一.单项选择题(本大题共15小题,每小题3分,共45分) 1.[答案] D 2 ...

  9. 计算机与网络应用word解析,全国2009年4月自学考试计算机应用基础真题及答案解析...

    一.单项选择题(本大题共34小题,每小题1分,共34分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无分. 1. 在计算机中,正在运行的程序存 ...

最新文章

  1. 腾讯云的Ubuntu 18.04的镜像地址
  2. centos6.5环境 安装php5.5.30的redis扩展 介绍
  3. 学习Java的相关知识
  4. 跳台阶游戏(洛谷P5613题题解,Java语言描述)
  5. SpringMvc01 第一个Springmvc应用
  6. java puzzlers英文版_java puzzlers [更新至14.04.03]
  7. 初一的学生,上了初中成绩就下降了一大截,该怎么办?
  8. iOS 并发编程之 Operation Queues
  9. log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
  10. 增量式解析大型XML文件
  11. beego 静态文件处理
  12. 微型计算机存储器cache,微型计算机存储器系统中的Cache是
  13. windows10正式版官方原版镜像iso下载地址
  14. 起始字节 和起始位_frechlet起始距离fid的简短介绍
  15. 匿名内部类的格式和理解
  16. mysql语法错误:Every derived table must have its own alias
  17. Mendix开发介绍实用篇(一)
  18. 通信达股票交易接口-Java语言
  19. 工作N年的开发者更该写博客 —— 记参加CSDN开发者生态汇
  20. 如何用Sublime Text3 编译和运行Java程序

热门文章

  1. 2008年8月23日-国家体育馆 祥云小屋 白天
  2. 疑难杂症:内存明明很富裕,却还是申请不到?
  3. 有妖气漫画的图片地址分析
  4. 服务器租用和托管区别?
  5. HTML5和CSS3开发第五章课后作业
  6. DirectX9 入门(一)
  7. LeetCode刷题之路:1049. 最后一块石头的重量 II
  8. CLA182四位先行进位电路设计
  9. 小程序内容不符合规则
  10. opT型电阻网络分析