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/
- 按要求创建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题我不记得了