CKA考试题详解

CKA考试题真题详解

已经通过了CKA认证,这里大概讲下我遇到的考试题怎么解

  • 创建一个符合要求的pod

具体内容不记得了,主要是得找到一个简单的yaml文件改改就好

  • ß看某个标签使用cpu最高的pod

Kubectl top pod -l xxx标签

  • 创建secret,并且创建2个pod 1个pod mount成文件,一个用环境变量

https://kubernetes.io/docs/concepts/configuration/secret/ 从Creating a Secret Manually 开始内容到后面,考题只需要创建一个password字段,mount的路径略有改动,其他和这个页面里面的一样

  • oo给定deployment扩容

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

直接kubectl scale命令

  • 按要求创建deployment ,然后改image,然后再回滚回去,把最终的deployment spec弄出来

https://kubernetes.io/docs/concepts/workloads/controllers/deployment

  • 按要求创建daemonsets

貌似就是个创建个nginx镜像之类

https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ 这个里面的yaml (内容太大了,删都要删半天,可以找找还有没有更简单的)

  • 在一个新的namespace创建pod

自己先create 一个namespace 然后创建pod

  • 创建static pod

https://kubernetes.io/docs/tasks/administer-cluster/static-pod/

在指定目录下面创建一个yaml文件,然后改kubelet的systemd配置,reload+重启,检查下

  • 给定一个pod 拿到某行日志

Kubectl logs xxx | grep yyy 然后需要重定向去一个指定的文件

  • 给你个环境说有问题,自己看。manster 和node 只发现了controller-manager没启动

每台节点都可以ssh ,kubectl get pod看也没有非running 的systemctl 看了下有2个失败的,但是看着和考题无关,没管,搜了下kube 开头的,发现controller-manager没有enable 也没有start ,启动就好

  • 一个大题 给定ca.crt 配置好kubelet 还要陪ratation certificate 巴拉巴拉

https://kubernetes.io/docs/concepts/cluster-administration/certificates/

https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/

https://kubernetes.io/docs/tasks/tls/certificate-rotation

当时思路:应该是用openssl根据给定的ca.crt 生成server.crt server.key

然后需要配置kubelet,systemd文件也没有,想着可以从别的集群拷过来用用

但是openssl就报错了 此题8分,放弃。

  • 把一个node弄成unavailable 并且重新调度去新的node上

直接cordon下,然后pod delete下。好像就行了,至少没扣分

  • oo node 是not ready解决下

Ssh 去node上,发现kubelet没有启动,启动下就好

  • 给定pod创建service

麻烦就是自己写个yaml文件,聪明点可以kubectl expose 下,不会的话命令现场看就行了

  • 创建deployment 创建service 并且用nslookup 拿到service 和一个pod的解析的结果

https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

kubectl run –expose一句就可以解决,不然有点累,然后需要进pod nslookup service的域名和pod的域名,但是镜像里面没有nslookup。所以改成了ssh 去master机器上,ps 看下kube的参数中dns的ip地址,然后在master机器上nslookup ,然后需要弄回原来的机器上一个文件中,复制,然后用nano粘贴格式会乱,直接用echo "" >的方式

  • 列某个namepsace 下某个service所代表的所有pod的名字

先kubectl get service看下label 是什么,再kubectl get pod -l 看下面名字,然后需要留的是名字 kubectl get pods "-o=custom-columns=NAME:.metadata.name" 注意最终要的只是名字

  • 给定一个spec文件,按要求加一个init container 创建某个文件,然后container 发现这个文件在就启动,不再就退出

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

照着抄就行,结合题目,shell里面写个touch个文件就行

  • oo 用下nodeselector

https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector

这个里面的yaml改改就好

  • 创建一个符合要求的pv 大小 权限 路径

https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

这个里面的yaml文件,根据考题要求,改成ReadWriteMany ,路径改改就好

  • 给etcd做个snapshot 3.0 版本 要加环境变量用etcdctl 带证书

export ETCDCTL_API=3,后面根据etcdctl 命令行的提示看就能弄好

  • 列不含某个标签的node的数量

只有3个node,get出来一个个看,不知道命令怎么取非,注意审题,最终文件里面只需要个数量

  • 创建个带volume带pod,不可以是persistent的

一开始有点懵,以为要用hostpath什么的

https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/

其实就是这个,创建个带emptyDir的pod就好

一共24题还有2题我不记得了