K8S CKA 1.29 题库 考试环境+模拟环境

K8S CKA 1.29 题库 考试环境+模拟环境

微信: kc123123v

题库

题库一共17道题,题目难度都不大,在题库中,context和task是描述信息和任务,每一题都配置了官网的文档。
关键词的使用方法: 在考试的时候只能访问官网查资料,考试是类似于远程桌面,在远程桌面的浏览器访问官网,不能做书签和收藏,所以需要掌握如何查询每道题的官方文档。在给你的关键词中,是让你在官网去搜索用的,考试的时候建议这样用,因为每个题目的链接你下来,用关键词可事半功倍。根据截图去搜索就行。

1、基于角色的访问控制-RBAC

Context:
为部署流水线创建一个新的ClusterRole并将其绑定到范围为特定的 namespace 的特定ServiceAccount。
Tasks:
创建一个名为deployment-clusterrole的clusterrole,该clusterrole只允许对Deployment、Daemonset、Statefulset具有create权限,在现有的 namespace app-team1中创建一个名为cicd-token的新 ServiceAccount。
限于 namespace app-team1中,将新的ClusterRole deployment-clusterrole绑定到新的 ServiceAccount cicd-token。
关键词:RBAC
考试环境:

[student@node-1]$ kubectl config use-context k8s  # 设置配置环境,模拟环境不用
[student@node-1]$ kubectl  create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
[student@node-1]$ kubectl create serviceaccount cicd-token -n app-team1
[student@node-1]$ kubectl create rolebinding cicd-token-rolebinding -n app-team1 --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
[student@node-1] $ kubectl describe rolebinding cicd-token-rolebinding -n app-team1 # 检查

模拟环境:

root@master:~# kubectl  create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
root@master:~# kubectl create serviceaccount cicd-token -n app-team1
root@master:~# kubectl create rolebinding cicd-token-rolebinding -n app-team1 --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
root@master:~# kubectl describe rolebinding cicd-token-rolebinding -n app-team1 # 检查

2、节点维护-指定node节点不可用

Tasks:
Set the node named ek8s-node-1 as unavailable and reschedule all the pods running on it .
翻译:
Tasks:
将ek8s-node-1节点设置为不可用,然后重新调度该节点上的所有Pod.
关键词:drain node
考试环境:

[student@node-1] $ kubectl config use-context ek8s
[student@node-1] $ kubectl cordon ek8s-node-1    #设置节点是不可调度状态
[student@node-1] $ kubectl drain ek8s-node-1 --delete-emptydir-data --ignore-daemonsets --force

模拟环境:

root@master:~# kubectl  get nodes
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   5h55m   v1.29.0
node     Ready    <none>          5h53m   v1.29.0
root@master:~# kubectl  cordon node
node/node cordoned
root@master:~# kubectl  drain node --delete-emptydir-data --ignore-daemonsets --force

3、k8s版本升级

现有的Kebernetes集群正在运行的版本1.29.0。仅将master节点上的所有Kubernetes控制平面和节点组件升级到版本1.29.1。
(注意,考试时,有的考生是1.29.0升级到1.29.1,有的考生是1.30.0升级到1.30.1,具体升级的版本要注意,根据题目要求更改)
确保升级之前drain master节点,并在升级后uncirdon master节点
可以使用一下命令,通过ssh连接到master节点。
ssh master01
可以使用一下命令,在该master节点上获取更高权限:
sudo -i
另外在主节点上升级kubelet和kubectl。
请不要升级工作节点,etcd,container管理器,CNI插件,DNS服务或任何其他插件。

[student@node-1] $kubectl config use-context mk8s
[student@node-1] $ kubectl get nodes
# cordon 停止调度,将node调为SchedulingDisabled。新pod不会被调度到该node,但在该node的旧pod不受影响。
# drain 驱逐节点。首先,驱逐该node上的pod,并在其他节点重新创建。接着,将节点调为 SchedulingDisabled。
[student@node-1] $ kubectl cordon master01
[student@node-1] $ kubectl drain master01  --delete-emptydir-data --ignore-daemonsets --force
# ssh到master节点,并切换到root下
[student@node-1] $ ssh master01
[student@master01] $ sudo -i
[root@master01] # apt-cache show kubeadm|grep 1.29.1
[root@master01] # apt-mark hold kubeadm  # 解锁
[root@master01] # apt-get update
[root@master01] # apt-get install -y kubeadm=\1.29.1-1.1'
# 验证升级计划
[root@master01] # apt-mark hold kubeadm # 锁定kubeadm 自动升级
[root@master01] #kubeadm upgrade plan
# 排除etcd,升级其他的,提示时,输入y。
[root@master01] # kubeadm upgrade apply v1.29.1 --etcd-upgrade=false # 输入Y
[root@master01] # systemctl restart kubelet 
[root@master01] # kubeadm version 
# 升级kubelet
[root@master01] # apt-mark unhold kubelet kubectl 
[root@master01] #apt-get install -y kubelet=1.29.1-1.1
[root@master01] # kubelet --version
# 升级kubectl
[root@master01] #apt-get install kubectl=1.29.1-1.1
[root@master01] #kubectl version
# 退出root,退回到student@master01
[root@master01] # exit
# 退出master01,退回到student@node-1
[student@master01] $ exit
# 不要输入exit多了,否则会退出考试环境的。
#恢复master01调度
 [student@node-1] $ kubectl uncordon master01
 [student@node-1] $ kubectl get node

模拟环境:

kubectl version
kubelet --version
kubeadm version 
kubectl get nodes
# master节点上设置
kubectl cordon master
kubectl drain master --delete-emptydir-data --ignore-daemonsets --force
apt-cache show kubeadm | grep 1.29.1  # 如果执行这个没有结果的话 先执行后面三条命令 
# apt-mark unhold kubeadm   apt-get update  apt-get install -y kubeadm='1.29.1-1.1'
# 考试的时候已经有了
apt-mark unhold kubeadm  # 允许升级kubeadm 
apt-get update
apt-get install -y kubeadm='1.29.1-1.1' # 下载的时候需要多等一下,考试的时候下载会很快
apt-mark hold kubeadm # 锁定
kubeadm upgrade plan # 验证升级计划
kubeadm upgrade apply v1.29.1 --etcd-upgrade=false # 交互式页面输入Y 
systemctl restart kubelet
kubeadm version # 至此kubeadm升级完成
# 升级kubeket 和kubectl 
apt-mark unhold kubelet kubectl 
apt-get install -y kubelet='1.29.1-1.1'
kubelet --version 
systemctl restart kubelet 
apt-get install -y kubectl='1.29.1-1.1'
kubectl version 
root@master:~# kubectl  get nodes
NAME              STATUS                     ROLES           AGE   VERSION
master   		  Ready,SchedulingDisabled   control-plane   45d   v1.29.1
node			  Ready                      <none>          45d   v1.29.0

kubectl uncordon master

4、ETCD数据库备份恢复

Task:
首先,为运行在https://127.0.0.1:2379上的现有 etcd 实例创建快照并将快照保存到 /srv/data/etcd-snapshot.db文件
为给定实例创建快照预计能在几秒钟内完成。 如果该操作似乎挂起,则命令可能有问题。用 CTRL + C 来取消操作,然后重试。
然后还原位于/var/lib/backup/etcd-snapshot-previous.db的现有先前快照。
提供了以下TLS证书和密钥,以通过etcdctl连接到服务器。
CA 证书: /opt/KUIN00601/ca.crt
客户端证书: /opt/KUIN00601/etcd-client.crt
客户端密钥: /opt/KUIN00601/etcd-client.key
考试环境:

# 确认一下ssh终端,是在[student@node-1] $ 下
# 备份:
# 如果不使用export ETCDCTL_API=3,而使用ETCDCTL_API=3,则下面每条etcdctl命令前都要加ETCDCTL_API=3。
# 如果执行时,提示permission denied,则是权限不够,命令最前面加sudo即可。
student@node-1:~$ export ETCDCTL_API=3
student@node-1:~$ sudo  ETCDCTL_API=3  etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/opt/KUIN000601/ca.crt --cert=/opt/KUIN000601/etcd-client.crt --key=/opt/KUIN000601/etcd-client.key  snapshot save /srv/data/etcd-snapshot.db
# 还原:
student@node-1:~$ sudo export 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值