成功最有效的方法就是向有经验的人学习!

2020年12月11日最新CKA认证试题通关秘籍

写在前面


这就是证书的样子了。

准备考试

在这里我想说的是中文网报名还是很香的,不用非得上英文,因为最终考试是一样的,考官那是那一批人。
最重要的是中文网相对折扣大,我只花了1252元就考了,香不。

另外不用纠结名字怎么填,与证件一致就OK,用身份证也是可以的,有人说用拼音高大上一点,我看未必,相反我觉得用拼音还不如用中文,现在中国的月亮也很圆,有些朋友可能还不知道,2020年上半年联合国已将中文列入全球通用语言。哈哈。不过用中文可能会乱码这是真的,但是不影响考试,拿到证后,可以联系客服改一下名字就OK,这都不是什么大事。

提前准备一间房间出来,墙上不要有字画相关,周围不要有字,提前盖一下。省得麻烦。
桌子上全部清空,除了电脑,还有桌下。可以放一个无字水杯,考试中途可以上一次厕所。

网络保证通顺,谷歌浏览器有时候可能无法共享桌面,这个要注意,我是遇到了,当时以为凉了,结果考官给了一个。
请注意考试中你所占用的时候是你的考试时间,不要试图问考官无关问题,他也不会回你。
考试余下时间在左上角有个进度条
进去直接和考官说中文,你是花了钱的。
另外最好使用命令补全,节省时间,如果你和我一样打字快,就无视吧。
默认进入的是node-1机器,这个机器上可以直接使用kubectl操作集群,只有需要操作master主机的文件时,才ssh过去,记得exit ,不支持再次ssh
另外需要输入密码请按ctrl+c 执行sudo -i提权
考试时不要出声,不要出现别的人,头不能乱看乱动

基本就这些

file

第一题

file

kubectl config use-context k8s
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,daemonsets.statefulsets
kubectl create serviceaccount cicd-token -n app-team1
kubectl create rolebinding read-secrets-global --serviceaccount=app-team1:cicd-token --clusterrole=deployment-clusterrole -n app-team1
#https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/

第二题

file

kubectl config use-context ek8s
kubectl cordon ek8s-node-1
kubectl drain ek8s-node-1 --ignore-daemonsets
#如果不能驱逐pod根据提示是否添加后面两个选项,反正我是没加可以正常执行  --delete-local-data  --force
#https://kubernetes.io/zh/docs/concepts/architecture/nodes/
#https://kubernetes.io/zh/docs/tasks/administer-cluster/safely-drain-node/

第三题

file

  1. 设置mk8s-master-1不可调度并驱逐POD
  2. 升级mk8s集群的master节点mk8s-master-1,不升级work节点
  3. 升级master时, etcd,coredns,CNI plugin,container manager及其他组件不做升级
kubectl config use-context mk8s
kubectl get node
kubectl cordon mk8s-master-1
kubectl drain mk8s-master-1 --ignore-daemonsets
#这两个选项根据需要添加,我考试没有加 --delete-local-data  --force
ssh mk8s-master-1  # 记得一定要在master主机上去操作
sudo -i
apt install kubeadm=1.19.0-00 -y
kubeadm version (检查kubeadm版本)
kubeadm upgrade plan
kubeadm upgrade apply v1.19.0 --etcd-upgrade=false  # 这一项很关键,不然没分
apt install kubelet=1.19.0-00 kubectl=1.19.0-00 -y
systemctl restart kubelet
exit
exit  (如果使用sudo -i,这里一定要退出两次)
kubectl get node (确认只升级了master节点到1.19.0版本)
#https://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

第四题

file
file

ETCDCTL_API=3 etcdctl snapshot save snap.db --endpoints=https://127.0.0.1:2379 --cacert=/opt/KUIN00601/ca.crt --cert=/opt/KUIN00601/etcd-client.crt --key=/opt/KUIN00601/etcd-client.key
ETCDCTL_API=3 etcdctl snapshot restore /var/lib/backup/etcd-snapshot-previous.db --data-dir=/var/lib/etcd
#https://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd/

第五题

file

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-port-from-namespace
  namespace: internal
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: internal
    - podSelector: {}
    ports:
    - protocol: TCP
      port: 8080
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-port-from-namespace
  namespace: bigcotp
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: internal
    ports:
    - protocol: TCP
      port: 8080
kubectl config use-context hk8s
vi netwokpolicy.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f netwokpolicy.yaml
#https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/

第六题

file

kubectl edit deployment front-end
#在image同级添加以下代码
...
您暂时无权查看此隐藏内容!
kubectl config use-context k8s kubectl expose deployment front-end --port=80 --target-port=80 --protocol=TCP --type=NodePort --name=front-end-svc #https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/expose/expose-intro/ #https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/expose/expose-interactive/

第七题

file

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ping
  namespace: ing-internal
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /hello  # 我考试时这里是hello
        pathType: Prefix
        backend:
          service:
            name: hello
            port:
              number: 5678
kubectl config use-context k8s
vi ping-ingress.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f ping-ingress.yaml
#验证
kubectl get ingress -n ing-internal   # 获取ingress的IP地址
curl -kL $(获取ingress的IP地址)/hi
#返回 hi 即为成功
#https://kubernetes.io/zh/docs/concepts/services-networking/ingress/

第八题

file

kubectl config use-context k8s
kubectl scale deployment webserver --replicas=6
#https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/

第九题

file

apiVersion: v1
kind: Pod
metadata:
  name: nginx-kusc00401
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disk: ssd
kubectl config use-context k8s
vi pod-nginx.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f pod-nginx.yaml
#验证
kubectl get po nginx-kusc00401 -o wide
#https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/

第十题

file

kubectl config use-context k8s
kubectl get node # 查看有几个 Ready 状态节点
kubectl describe <K8S-NODE> | grep -i noschedule 
#拿眼瞅一下有几个 Ready 状态并且没有 noschedule 污点的节点,将数量写入指定文件
echo $NUM > /opt/KUSC00402/kusc00402.txt  #记得cat文件看一下,我有一次不知道为啥就没写进去
#https://kubernetes.io/zh/docs/concepts/architecture/nodes/#condition

第十一题

file

这题要注意,每个人创建的容器数量不一样,我当时就只创建nginx+redis

apiVersion: v1
kind: Pod
metadata:
  name: kucc4
spec:
  containers:
  - name: nginx
    image: nginx
  - name: redis
    image: redis
  - name: memcached
    image: memcached
  - name: consul
    image: consul
kubectl config use-context k8s
vi pod-kucc4.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f pod-kucc4.yaml
#验证
kubectl get po kucc4
#https://kubernetes.io/zh/docs/concepts/workloads/pods/init-containers/

第十二题

file

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-data
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadOnlyMany
  hostPath:
    path: "/srv/app-data"
kubectl config use-context hk8s
vi app-data-pv.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f app-data-pv.yaml
#验证
kubectl get pv
#https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

第十三题

file

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-volume
spec:
  storageClassName: csi-hostpath-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Mi

 ---
 apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: pv-volume
  containers:
    - name: web-server
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
kubectl config use-context ok8s
vi pv-volume-pvc.yaml
#将上面的yaml内容粘贴进来
kubectl apply -f pv-volume-pvc.yaml
#验证
kubectl get pvc
#修改pvc 10Mi --> 70Mi
您暂时无权查看此隐藏内容!
#https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

第十四题

file

kubectl config use-context k8s
kubectl logs foobar | grep unable-to-access-website > /opt/KUTR00101/foobar
#https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/

第十五题

file

apiVersion: v1
kind: Pod
metadata:
  name: big-corp-app
spec:
  containers:
  - name: count
    image: busybox
    args:
    - /bin/sh
    - -c
    - >
      i=0;
      while true;
      do
        echo "$i: $(date)" >> /var/log/big-corp-app.log;
        sleep 1;
      done
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  - name: count-log
    image: busybox
    args: [/bin/sh, -c, 'tail -n+1 -f /var/log/big-corp-app.log']
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  volumes:
  - name: varlog
    emptyDir: {}
kubectl config use-context k8s
kubectl get po big-corp-app -o yaml > big-corp-app.yaml # 导出后修改big-corp-app.yaml文件
kubectl delete po big-corp-app
kubectl apply -f big-corp-app.yaml
#https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/

第十六题

file

kubectl config use-context k8s
kubectl top po -l name=cpu-user -A # 将CPU资源消耗最大的那个pod名称写入指定文件
echo <podname> > /opt/KUR00401.txt

第十七题

file

kubectl config use-context wk8s
kubectl get node
ssh wk8s-node-0
sudo -i
systemctl status kubelet
systemctl start kubelet
您暂时无权查看此隐藏内容!
exit exit kubectl get node #确认wk8s-node-0状态是否已经为Ready

觉得有用顶,评论,预祝考试通过

内容查看本文隐藏内容查看需要消耗5土豆币,请先
土豆币按需购买,不退换,请考虑清楚后购买。
赞(27) 打赏
未经允许不得转载:陈桂林博客 » 2020年12月11日最新CKA认证试题通关秘籍
分享到

大佬们的评论 72

  1. #50

    xie xie xie xie !

    daniu3年前 (2021-06-17)回复
  2. #49

    学习下

    kevin3年前 (2021-05-24)回复
  3. #48

    向大佬学习一下

    余生3年前 (2021-05-10)回复
  4. #47

    学习学习

    derekchan3年前 (2021-03-30)回复
  5. #46

    第3题升级集群,如何才能不升coredns呢?

    wingxang3年前 (2021-03-20)回复
    • 按题上的解答方法不会升级DNS,升级DNS是需要应用yaml的

      admin3年前 (2021-03-21)回复
  6. #45

    膜拜大佬

    大刘3年前 (2021-03-17)回复
  7. #44

    第13题学习一下。谢谢

    cooldog3年前 (2021-03-15)回复
  8. #43

    感谢!刚想问第5题,发现已经有答案了,赞!

    wingxang3年前 (2021-02-21)回复
  9. #42

    学习一下

    yuxy3年前 (2021-02-11)回复
  10. #41

    厉害,学习学习

    shenhuichao3年前 (2021-02-03)回复
  11. #40

    厉害了,大佬。学习一下。

    yuxy3年前 (2021-01-26)回复
  12. #39

    感谢桂林哥无私分享,好人一生平安。

    Mario3年前 (2021-01-23)回复
  13. #38

    赞赞赞那

    feng3年前 (2021-01-23)回复
  14. #37

    大佬威武

    才子3年前 (2021-01-23)回复
  15. #36

    赞一个

    23333年前 (2021-01-23)回复
  16. #35

    已过谢谢

    cak3年前 (2021-01-14)回复
    • 恭喜恭喜

      admin3年前 (2021-01-14)回复
  17. #34

    赞,太棒了

    骑猪赛大象3年前 (2021-01-13)回复
  18. #33

    赞大佬

    赞赞赞3年前 (2021-01-04)回复
  19. #32

    赞赞赞

    wangxj3年前 (2021-01-01)回复
  20. #31

    不错

    hello3年前 (2020-12-31)回复
  21. #30

    必须赞

    阁下3年前 (2020-12-30)回复
  22. #29

    可以

    hello3年前 (2020-12-28)回复
  23. #28

    桂林哥牛逼!!来取经

    二喵3年前 (2020-12-28)回复
  24. #27

    通关取经,感谢大佬!

    10065548783年前 (2020-12-28)回复
  25. #26

    可以可以

    11113年前 (2020-12-26)回复
  26. #25

    支持

    Jasonasddsad3年前 (2020-12-22)回复
  27. #24

    通关取经,感谢大佬

    阿喵3年前 (2020-12-21)回复
  28. #23

    厉害了,来观摩

    aws3年前 (2020-12-21)回复
  29. #22

    第五题有点瑕疵

    aaa3年前 (2020-12-20)回复
    • 第五题目前已知的有两种可能性,你有什么新的看法,欢迎补充一下

      admin3年前 (2020-12-21)回复
  30. #21

    可以

    nine3年前 (2020-12-19)回复
  31. #20

    据说评论可以查看,我不得看一下嘛

    zhouyc3年前 (2020-12-19)回复
  32. #19

    keyi

    13年前 (2020-12-19)回复
  33. #18

    各位好啊

    飞天倒3年前 (2020-12-18)回复
  34. #17

    据说评论可以查看,我不得看一下嘛

    stelath3年前 (2020-12-18)回复
  35. #16

    牛逼1

    cuiyb3年前 (2020-12-18)回复
  36. #15

    据说评论可以查看,我不得看一下嘛

    飞天侠3年前 (2020-12-18)回复
  37. #14

    5题有2个截图?

    simonlp20013年前 (2020-12-16)回复
    • 第五题的第二个解答是12月份最新的,我没有截图

      admin3年前 (2020-12-16)回复
    • 截图不是12月最新的,第二个作答,我是按12月份最新题目

      admin3年前 (2020-12-16)回复
  38. #13

    1题的create rolebinding 名字是自己取的吗?题中好像没有名字的要求,自己取名吗?

    simonlp20013年前 (2020-12-16)回复
    • 这个名字自定义就好了,我使用的是deployment-clusterrole,这个没有要求的。

      admin3年前 (2020-12-16)回复
  39. #12

    恢复那题停止静态pod和etcd是在两个不同的机子上?

    。。。3年前 (2020-12-16)回复
    • 是的

      admin3年前 (2020-12-16)回复
  40. #11

    4题restore的时候,可以成功吗?…/etcd,目录以及存在,不容许吧?

    simonlp20013年前 (2020-12-14)回复
    • 没问题的,重启pod时需要ssh到主节点

      admin3年前 (2020-12-14)回复
      • 备份是在node1节点,restore是在master节点?分别执行上边的2个命令?

        simonlp20013年前 (2020-12-16)回复
        • 备份和还原均在node-1上面完成即可,但是重启apiserver的POD你是需要到master中完成,考试环境的k8s集群均是则kubeadm创建。

          admin3年前 (2020-12-16)回复
          • 到master上,如何重启apiserverpod,修改/etc/kubernetes/manifests/etcd.yaml 文件?

            simonlp20013年前 (2020-12-17)
          • 有关重启方法,你看一下ppt上面那个,或私聊一下

            admin3年前 (2020-12-17)
  41. #10

    针不戳啊啊啊啊

    周山山山3年前 (2020-12-14)回复
  42. #9

    针不戳

    周山山山3年前 (2020-12-14)回复
  43. #8

    写的很详细

    7370772733年前 (2020-12-14)回复
  44. #7

    真不错

    舟山杉杉3年前 (2020-12-13)回复
  45. #6

    大佬威武

    raphael3年前 (2020-12-13)回复
  46. #5

    keyi

    jingcai3年前 (2020-12-13)回复
  47. #4

    厉害

    陈鹏3年前 (2020-12-12)回复
  48. #3

    墙都不扶,就服大佬啊!

    liiooo3年前 (2020-12-12)回复
  49. #2

    顶起来,墙都不扶,就服大佬啊!

    LLtsc3年前 (2020-12-11)回复
  50. #1

    我已在此恭候你多时了

    admin3年前 (2020-12-11)回复

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册