CKA考试这几年来虽然版本在升级,但题目一直没有大的变化,通过K8S考试的方法就是在模拟环境上反复练习,通过练习熟悉考试环境和考试过程中可能遇到的坑。这里姚远老师详细向大家介绍一下考试的环境和题目,需要详细资料的同学请在文章后面留言。祝大家考试成功。
K8S的考试环境
CKA考试环境由三台虚拟机组成,这三台虚拟机姚远老师已经建好了,需要的同学请在下面留言,主机名分别是k8s-master、k8s-node1、k8s-node2,安装的操作系统是Ubuntu,大家可能猜到了为什么不用红帽,因为版权的问题。这个考试是Linuxfoundation搞的,他们想保证纯正的开源。
1权限控制RBAC
考题概述:
创建名称 deployment-clusterrole 的 ClusterRole,该角色具备创建 Deployment、Statefulset、
Daemonset 的权限,在命名空间 app-team1 中创建名称为 cicd-token 的 ServiceAccount,绑定
ClusterRole 到 ServiceAccount,且限定命名空间为 app-team1。
考题解析:
需要熟悉创建 serviceaccount、clusterrole 和 rolebinding 的方法,需要限定在 ns 级别,因此最好使
用 rolebinding
参考方法:
kubectl create ns app-team1 (题库练习执行,命名空间考试系统已存在)
kubectl create serviceaccount cicd-token -n app-team1
kubectl create clusterrole deployment-clusterrole --verb=create --
resource=deployments,statefulsets,daemonsets
kubectl -n app-team1 create rolebinding cicd-clusterrole --
clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
最后可以验证下rolebinding资源
rolebinding后面 的名字cicd-clusterrole随便起的,因为题 中没有要求,如果题 中有要求,就不能随便起了
2 设置节点不可
考题概述:
设置 ek8s-node-1 节点为不可 、重新调度该节点上的所有 pod
考题解析:
cordon节点,drain 节点,需要忽略 daemonsets 并清除 local-data,否则可能 法驱逐 pod
参考 法:
切换 context
kubectl cordon ek8s-node-1
kubectl drain ek8s-node-1 --ignore-daemonsets --delete-emptydir-data --
force
完成后一定要通过 get nodes加以确认
3 升级 kubeadm
考题概述:
升级 master 节点为1.22.2,升级前确保drain master 节点,不要升级worker node 、容器
manager、 etcd、 CNI插件、DNS 等内容;
考题解析:
首先 cordon、drain master节点,其次升级 kubeadm 并 apply 到1.22.2版本,升级 kubelet 和
kubectl
参考方法:
切换 context
kubectl get nodes
ssh mk8s-master-0
kubectl cordon mk8s-master-0
kubectl drain mk8s-master-0 --ignore-daemonsets --force
apt-mark unhold kubeadm kubectl kubelet
apt-get update && apt-get install -y kubeadm=1.22.2-00 kubelet=1.22.2-00
kubectl=1.22.2-00
apt-mark hold kubeadm kubectl kubelet
kubeadm upgrade plan
kubeadm upgrade apply v1.22.2 --etcd-upgrade=false
systemctl daemon-reload && systemctl restart kubelet
//kubectl -n kube-system rollout undo deployment coredns 有些朋友建议
rollout coredns,
kubectl uncordon mk8s-master-0
检查master节点状态以及版本
kubectl get node
注意:随着K8S版本的更新,升级的版本号也会有变化,只需根据考题调整升级命令对应的版本号即
可。
需要更多题库请留言。