日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CKA 认证考试必过技巧分享

發(fā)布時間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CKA 认证考试必过技巧分享 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是CKA考試?

CKA (Certified Kubernetes Administrator) 考試是一種遠(yuǎn)程在線、有監(jiān)考、基于實操的認(rèn)證考試,需要在運行Kubernetes的命令行中解決多個任務(wù)。CKA認(rèn)證考試是專為Kubernetes管理員、云管理員和其他管理Kubernetes實例的IT專業(yè)人員而設(shè)的。已獲得認(rèn)證的K8s管理員具備了進(jìn)行基本安裝以及配置和管理生產(chǎn)級Kubernetes集群的能力。

考CKA有什么用?

  • 證明你的實力,提高競爭力: 云原生發(fā)展趨勢日益迅猛,越來越多的公司已經(jīng)開始使用kubernetes作為核心容器調(diào)度平臺,因此在諸多崗位都有明確的CKA認(rèn)證要求。
  • 公司招投標(biāo):有過招投標(biāo)經(jīng)驗的同學(xué)應(yīng)該了解招投標(biāo)的過程,這塊就不詳細(xì)敘述,通過CKA證明你們公司擁有云原生技術(shù)實力,同時可通過CKA認(rèn)證提供公司投標(biāo)評分
  • 申請KCSP認(rèn)證:每個公司有3名CKA員工就可以申請KCSP
  • 考試內(nèi)容

    通過考試后您將會獲得由Linux基金會和云原生計算基金會(CNCF)頒發(fā)的CKA (Certified Kubernetes Administrator)證書,如下:

    考試規(guī)則

    考試模式:線上考試

    考試時間:2小時

    認(rèn)證有效期:3年

    軟件版本:Kubernetes v1.24

    重考政策:可接受1次重考

    經(jīng)驗水平:中級

    考試過程中你的PC機(jī)是可以通過瀏覽器訪問Kubernetes官網(wǎng)的,這一點很重要,相當(dāng)于“開卷考試”,所以沒事多看看官網(wǎng)文檔很重要!知道考試內(nèi)容在哪里,學(xué)會關(guān)鍵詞搜索。

    https://kubernetes.io/zh-cn/docs/home/

    更多關(guān)于考試的詳細(xì)內(nèi)容可以前往linuxfoundation社區(qū)官網(wǎng)查看

    https://training.linuxfoundation.cn/certificates/1

    考試技巧

    1. 別名設(shè)置

    考試多半是通過命令行直接操作,已到達(dá)考試目標(biāo),頻繁的命令不僅容易出錯而且比較占用時間,2小時很寶貴!通過別名來偷個懶吧!

    vi ~/.bashrc --- alias k='kubectl' alias kg='k get' alias kd='k describe' alias kl='k logs' alias kc='k create' source <(kubectl completion bash) source <(kubectl completion bash | sed 's/kubectl/k/g' ) complete -F __start_kubectl k ---

    2. 資源簡稱-SHORTNAMES

    下面只是列舉了部分比較常見的資源,因為k8s資源很多,像查看更多的話,可以執(zhí)行 kubectl api-resources 命令來查看,表格中的簡稱一定要記住!尤其是英文不好的同學(xué)。

    3. 學(xué)會看文檔

    記住“這是一場開卷考試”,所以不要想著死記硬背那一堆yaml文件,學(xué)會使用搜索,這將事半功倍,例如:想要知道deployment里面有哪些可以配置的字段,直接在官網(wǎng)文檔搜索 deployment 即可,而且支持中文,考試中讓你創(chuàng)建一個 deployment,你完全可以把 yaml 粘貼過去,通過 vi 命令編輯一些名稱和docker image 即可,到這是不是感覺離通過考試又進(jìn)了一步!

    4. Help大法好

    學(xué)會 kubectl xxx --help,會有不一樣的驚喜。

    5.牢記pod的狀態(tài)

    在k8s集群中,我們創(chuàng)建最多的資源應(yīng)該就是pod了,因為這直接關(guān)系到我們的服務(wù)是否正常,了解pod不同狀態(tài)所代表的含義是更加有利于幫助我們排查問題

    考試練習(xí)

    集群安裝

    平時學(xué)習(xí)、練習(xí)時是可以用kubeadm去安裝集群,目前這是官方比較推薦的方式。

    1) 初始化集群

    kubeadm init --kubernetes-version 1.24 \--pod-network-cidr=172.16.0.0/16 \ --apiserver-advertise-address=167.235.78.191

    2) 添加節(jié)點

    kubeadm join 192.168.1.253:6443 --token ptildy.2nyolwhkd8g1p8pq \--discovery-token-ca-cert-hash sha256:581214693222568860b1887121aab546b87f6fbfc1342d4092aa18601b2c27c3

    3) 維護(hù)、移除節(jié)點

    cordon 將節(jié)點標(biāo)記為不可調(diào)度 drain 節(jié)點準(zhǔn)備維護(hù),將有問題的node中的pod遷移到其他正常的node上 taint 更新一個或多個節(jié)點上的錯誤

    4) 恢復(fù)節(jié)點

    uncordon 將節(jié)點標(biāo)記為可調(diào)度

    工作負(fù)載:

    1) Deployment(無狀態(tài)應(yīng)用)

    是kubernetes在1.2版本中引入的概念,用于更好的解決Pod的編排問題,Deployment在內(nèi)部使用了ReplicaSet來實現(xiàn)目的,我們可以把Deployment理解為ReplicaSet的一次升級,兩者的相似度超過90%。

    apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deploymentlabels:app: nginx spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80

    2) StatefulSet(有狀態(tài)應(yīng)用)

    和 Deployment 類似, StatefulSet 管理基于相同容器規(guī)約的一組 Pod。但和 Deployment 不同的是, StatefulSet 為它們的每個 Pod 維護(hù)了一個有粘性的 ID。這些 Pod 是基于相同的規(guī)約來創(chuàng)建的, 但是不能相互替換:無論怎么調(diào)度,每個 Pod 都有一個永久不變的 ID。

    apiVersion: v1 kind: Service metadata:name: nginxlabels:app: nginx spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata:name: web spec:selector:matchLabels:app: nginx # 必須匹配 .spec.template.metadata.labelsserviceName: "nginx"replicas: 3 # 默認(rèn)值是 1minReadySeconds: 10 # 默認(rèn)值是 0template:metadata:labels:app: nginx # 必須匹配 .spec.selector.matchLabelsspec:terminationGracePeriodSeconds: 10containers:- name: nginximage: registry.k8s.io/nginx-slim:0.8ports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: wwwspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "my-storage-class"resources:requests:storage: 1G

    3) DaemonSet

    守護(hù)進(jìn)程,DaemonSet會在每個k8s 節(jié)點運行一個pod,當(dāng)有節(jié)點加入集群時, 也會為他們新增一個 Pod 。當(dāng)有節(jié)點從集群移除時,這些 Pod 也會被回收。刪除 DaemonSet 將會刪除它創(chuàng)建的所有 Pod。比如:Prometheus監(jiān)控、日志收集的系統(tǒng)都需要

    apiVersion: apps/v1 kind: DaemonSet metadata:name: fluentd-elasticsearchnamespace: kube-systemlabels:k8s-app: fluentd-logging spec:selector:matchLabels:name: fluentd-elasticsearchtemplate:metadata:labels:name: fluentd-elasticsearchspec:tolerations:# 這些容忍度設(shè)置是為了讓該守護(hù)進(jìn)程集在控制平面節(jié)點上運行# 如果你不希望自己的控制平面節(jié)點運行 Pod,可以刪除它們- key: node-role.kubernetes.io/control-planeoperator: Existseffect: NoSchedule- key: node-role.kubernetes.io/masteroperator: Existseffect: NoSchedulecontainers:- name: fluentd-elasticsearchimage: quay.io/fluentd_elasticsearch/fluentd:v2.5.2resources:limits:memory: 200Mirequests:cpu: 100mmemory: 200MivolumeMounts:- name: varlogmountPath: /var/logterminationGracePeriodSeconds: 30volumes:- name: varloghostPath:path: /var/log

    4) Job

    任務(wù),通常任務(wù)是臨時性的,Job 會創(chuàng)建一個或者多個 Pod,Pod中的程序計算完成后會自動終止

    apiVersion: batch/v1 kind: Job metadata:name: pi spec:template:spec:containers:- name: piimage: perl:5.34.0command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]restartPolicy: NeverbackoffLimit: 4

    服務(wù)和網(wǎng)絡(luò):

    1) service

    將運行在一組 Pods上的應(yīng)用程序公開為網(wǎng)絡(luò)服務(wù)的抽象方法。簡單來說就是起到一個自動注冊和對集群內(nèi)部服務(wù)訪問的作用。試想一下因為pod重建后IP都會變,想要被其他服務(wù)一直被訪問不太現(xiàn)實,而且多個pod副本難道自己要搭建一個負(fù)載均衡,然后還要考慮pod怎么注冊進(jìn)來?不需要!這就是 service 干的活兒。

    通過 selector 可以選擇這個 service 后端的服務(wù)是什么,類似配置SLB負(fù)載均衡的Backend

    apiVersion: v1 kind: Service metadata:name: my-service spec:selector:app.kubernetes.io/name: MyAppports:- protocol: TCPport: 80targetPort: 9376

    2) ingress

    提供將集群內(nèi)部服務(wù)暴露到外部的能力,簡單理解就是起到一個負(fù)載均衡器的作用,目前開源的ingress有 nginx-ingress、traefik,商用的F5、A10都有

    apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: minimal-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: / spec:ingressClassName: nginxrules:- http:paths:- path: /apppathType: Prefixbackend:service:name: my-appport:number: 80

    存儲

    1) 持久卷(Persistent Volume)

    簡稱 PV,PV是集群中的一塊存儲,可以由管理員事先制備, 或者使用存儲類(Storage Class)來動態(tài)制備。持久卷是集群資源,就像節(jié)點也是集群資源一樣。PV 持久卷和普通的 Volume 一樣, 也是使用卷插件來實現(xiàn)的,只是它們擁有獨立于任何使用 PV 的 Pod 的生命周期。此 API 對象中記述了存儲的實現(xiàn)細(xì)節(jié),無論其背后是 NFS、iSCSI 還是特定于云平臺的存儲系統(tǒng)

    apiVersion: v1 kind: PersistentVolume metadata:name: foo-pv spec:storageClassName: ""claimRef:name: foo-pvcnamespace: foo

    2) 持久卷申領(lǐng)(PersistentVolumeClaim)

    簡稱PVC,PVC 表達(dá)的是用戶對存儲的請求。概念上與 Pod 類似。Pod 會耗用節(jié)點資源,而 PVC 申領(lǐng)會耗用 PV 資源。Pod 可以請求特定數(shù)量的資源(CPU 和內(nèi)存);同樣 PVC 申領(lǐng)也可以請求特定的大小和訪問模式 (例如,可以要求 PV 卷能夠以 ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany 模式之一來掛載

    kind: PersistentVolumeClaim apiVersion: v1 metadata:name: test-claimannotations:volume.beta.kubernetes.io/storage-class: "nfs" spec:storageClassName: "nfs"accessModes:- ReadWriteManyresources:requests:storage: 10Gi

    3) 存儲類 (storageClass)

    簡稱SC,通過SC不需要管理員單獨去創(chuàng)建PV,普通用于只需要根據(jù)需要指定用哪個SC,然后在PVC中指定存儲卷大小就可以自動申請下來存儲卷

    apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: nfs provisioner: fuseim.pri/ifs parameters:archiveOnDelete: "true" reclaimPolicy: Retain

    4) 存儲類型

    emptyDir: Pod 啟動時為空,存儲空間來自本地的 kubelet 根目錄(通常是根磁盤)或內(nèi)存,使用場景:如果Pod被刪除,那么數(shù)據(jù)也會被刪除,不具備持久化。Pod內(nèi)的容器,需要共享數(shù)據(jù)卷的時候,使用的臨時數(shù)據(jù)卷。

    hostpath:直接掛載主機(jī)目錄, 如果需要通過容器直接讀取宿主機(jī)磁盤中的內(nèi)容,那么可以通過掛載hostpath 的卷實現(xiàn)

    故障排除

    1) 常用工具

    kubectl describe: 當(dāng)任何資源沒有進(jìn)入一個正常狀態(tài)的時候,都可以通過kubectl describe查看這個資產(chǎn)的事件信息

    kubectl logs:這個命令主要對于pod資源使用,當(dāng)pod 進(jìn)入 running 狀態(tài)后,服務(wù)已經(jīng)有問題,這時候可能程序里面有報錯,可以使用 kubectl logs 查看pod中應(yīng)用的具體日志

    2) 網(wǎng)絡(luò)

    遇到網(wǎng)絡(luò)問題可使用 ping 、mtr、telnet 等命令測試網(wǎng)絡(luò)連通性,判斷網(wǎng)絡(luò)故障點

    總結(jié)

    勤加練習(xí)是通過 CKA 考試的關(guān)鍵,本文只列舉了部分實操內(nèi)容,更多考試內(nèi)容以及詳細(xì)信息可以前往CNCF官網(wǎng)或Linux foundation查看,最后祝各位考試順利通過!

    關(guān)于HummerRisk

    HummerRisk 是開源的云原生安全平臺,以非侵入的方式對云原生環(huán)境進(jìn)行全面安全檢測。

    針對于 K8s 容器云的安全,我們提供多方面的檢測能力,可以幫助用戶快速發(fā)現(xiàn)K8s集群中的各種安全問題。

    歡迎關(guān)注我們了解更多。

    GitHub - HummerRisk/HummerRisk: HummerRisk 是云原生安全平臺,包括混合云安全治理和容器云安全檢測。

    總結(jié)

    以上是生活随笔為你收集整理的CKA 认证考试必过技巧分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。