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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kubernetes CKA题库(附答案、视频)

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kubernetes CKA题库(附答案、视频) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第一題 RBAC授權

問題權重: 4%

設置配置環境:
[student@node-1] $ kubectl config use-context k8s

Context
為部署管道創建一個新的ClusterRole并將其綁定到范圍為特定的namespace 的特定 ServiceAccount .

Task
創建一個名為 deployment-clusterrole 且僅允許創建以下資源類型的新ClusterRole :
Deployment
StatefulSet
DaemonSet

在現有的 namespace app-team1 中創建一個名為 cicd-token 的新ServiceAccount 。

限于 namespace app-team1 , 將新的ClusterRole deployment-clusterrole 綁定到新的 ServiceAccount cicd-token 。

解題

kubectl config use-context k8s kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,daemonsets,statefulsets kubectl create ns app-team1 kubectl create serviceaccount cicd-token -n app-team1 kubectl create rolebinding cicd-token --serviceaccount=app-team1:cicd-token --clusterrole=deployment-clusterrole -n app-team1 #驗證 kubectl --as=system:serviceaccount:app-team1:cicd-token get pods -n app-team1

https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第二題 節點設置不可用

設置配置環境:
[studentinode-1] $ kubectl config use-context ek8s

問題權重: 4%
Task
將名カek8s-node.1 的node沒置カ不可用,并重新凋度該node上所有運行的pods

解題

kubectl config use-context ek8skubectl drain k8s21-worker01 --ignore-daemonsets

注:如果執行drain提示錯誤,根據提示再加上選項,例如–delete-local-data–force

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第三題 升級K8s版本

問題權重: 7%
設置配置環境:
[student@node-1] $ kubectl config use- context mk8s
Task
現有的Kubernetes集群正在運行版本1.20.0。僅將主節點上的所
有Kubernetes控制平面和節點組件升級到版本1.20.1。
確保在升級之前drain主節點,并在升級后uncordon主節點。

可使用以下命令通過ssh 連接到主節點:
[student@node-1] $| ssh mk8s-master-0
可使用以下命令在該主節點上獲取更高權限:
[student@mk8s-master-0] $ sudo -i
另外,在主節點升級kubelet和kubectl。

kubectl config use-context mk8s kubectl drain mk8s-master-0 --ignore-daemonsets ssh mk8s-master-0 sudo -i apt install kubeadm-1.20.1-00 -y kubeadm upgrade plan kubeadm upgrade apply v1.20.1 --etcd-upgrade=false # 題目要求不升級etcd # 升級 kubelet 和 kubectl apt install kubelet-l.20.1-00 kubectl-l.20.1-00 -y systemctl restart kubelet #設置為可調度 kubectl uncordon mk8s-master-0 # 查看升級結果 kubectl get node

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第四題 etcd備份與恢復

問題權重: 7%
此項目無需更改配置環境。但是,在執行此項目之前,請確保您已返回初始點:
[student@nk85- master-0] $ exit
Task
首先,為運行在https://127.0.0.1:2379上的現有etcd 實例創建快照并將快照保存到/data/backup/etcd-snapshot.db
為給定實例創建快照預計能在幾秒鐘內完成。如果該操i作似乎掛起,則命令可能有問題。用CTRL+C 來取消
操作,然后重試。
然后還原位于/data/backup/etcd-snapshot-previous.db的現有先前快照。

提供了以下TLS證書和密鑰,以通過etcdctl連接到服務
CA證書: /opt/KUIN00601/ca.crt
客戶端證書: /opt/KUIN00601/etcd-client.crt
客戶端密鑰: /opt/KUIN00601/etcd-client.key

答題:

# 備份 ETCDCTL_API=3 etcdctl snapshot save /data/backup/etcd-snap.db --cacert=/opt/KUIN00601/ca.crt --cert=/opt/KUIN00601/etcd-client.crt --key=/opt/KUIN00601/etcd-client.key --endpoints=https://127.0.0.1:2379 # 恢復 systemctl stop etcd systemctl cat etcd # 確認下數據目錄(--data-dir 值) mv /var/lib/etcd /var/lib/etcd.bak ETCDCTL_API=3 etcdctl snapshot restore /data/backup/etcd-snapshot-previous.db -- data-dir=/var/lib/etcd chown -R etcd:etcd /var/lib/etcd systemctl start etcd

https://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第五題 網絡策略

問題權重: 7%

設置配置環境:
[studentinode-1] $ kubectl config use-context hk8s

Task

在現有的namespace my-app中創建一個名為allow-port-from-namespace 的新NetworkPolicy 。

確保新的NetworkPolicy 允許namespace my-app 中的Pods來連 接到namespace big-corp 中的端口8080 。

進一步確保新的 NetworkPolicy : 不允許對沒有在監聽端口8080的Pods的訪問 不允午不來自namespace my-app中的Pods的訪問

解題:

kubectl config use-context hk8s #給命名空間打標簽: kubectl label namespace big-corp name=big-corpapiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: allow-port-from-namespacenamespace: my-app spec:podSelector: {} policyTypes:- Ingressingress:- from:- namespaceSelector:matchLabels:name: big-corpports:- protocol: TCPport: 8080

參考文檔:https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第六題 SVC 暴露應用

問題權重: 7%
設置配置環境:
[student@node-1] $| kubectl config use- context k8s

Task
請重新配置現有的部署front-end以及添加名為http的端口規范來公開現有容器nginx 的端口80/tcp。
創建一個名為front-end-svc的新服務,以公開容器端口http。
配置此服務,以通過在排定的節點上的NodePort來公開各個Pods

kubectl config use-context k8s kubectl create deployment --image=nginx --port=80 front-end kubectl edit deployment front-end修改port的名字 .....spec:containers:- image: nginximagePullPolicy: Alwaysname: nginxports:- containerPort: 80name: httpprotocol: TCP ....... kubectl expose deployment front-end --port=80 --target-port=80 --type="NodePort" --name=front-end-svc

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第七題:Ingress

問題權重: 7%
設置配置環境:
[student@mnode-1] $ kubectl config use-context k8s

Task
如下創建一個新的nginx Ingress 資源:

名稱: pong
Namespace: ing-internal使用服務端口5678 在路徑/hello. 上公開服務hello

可以使用以下命令檢查服務hello 的可用性,該命令應返回hello :
[student@node-1] $| curl -kL <INTERNAL_ IP>/hello

# 以下考試無需要操作 kubectl create ns ing-internal kubectl create deployment hello --image=nginx --port=80 --namespace=ing-internal kubectl expose deployment hello --port=5678 --target-port=80 --name=hello --namespace=ing-internal kubectl exec -it hello-8fd7d4d77-2kdv9 -- /bin/bash -n ing-internalecho "hello" > /usr/share/nginx/html/index.html # 以下考試操作 cat 7.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: pongnamespace: ing-internalannotations:nginx.ingress.kubernetes.io/rewrite-target: / spec:rules:- http:paths:- path: /hellopathType: Prefixbackend:service:name: helloport:number: 5678 curl -kL <INTERNAL_ IP>/hello

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第八題 擴容 Pod 數量

問題權重: 4%
設置配置環境:
[student@node-1] $ kubeotl corfig use- context k8s
Task
將deployment 從loadbalancer 擴展至 5 pods

解題:

#以下考試不需要操作 kubectl create deployment loadbalancer --image=nginx --replicas=1 #以下考試操作 kubectl config use-context k8s kubectl scale deployment loadbalancer --replicas=5

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第九題 nodeSelector

問題權重: 4%
設置配置環境:
[student@node-1] $ kubectl config use-context k8s
Task
按如下要求調度一個 cod:
名稱: nginx-kusc00401
Image: nginx
Node selector: disk=ssd

解題:

# 以下考試無需要操作 kubectl label node k8s21-worker02 disk=ssd # 以下考試操作 kubectl config use-context k8scat 9.yaml apiVersion: v1 kind: Pod metadata:name: nginx-kusc00401 spec:containers:- name: nginximage: nginxnodeSelector:disk: ssd kubectl apply -f 9.yaml

https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十題統計準備就緒節點數量

問題權重: 4%
設置配置環境:
[student@node-1] $ kubectl config use-context k8s

Task
檢查有多少worker nodes已準備就緒(不包括被打上Taint:
NoSchedule的節點),并將數量寫入
/opt/KUSC00402/kusc00402.txt

解題:

kubectl config use-context k8s kubectl describe nodes $(kubectl get nodes | grep Ready| awk '{print $1}') | grep Tain | grep -vc NoSchedule > /opt/KUSC00402/kusc00402.txt

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十一題 Pod 配置多容器

問題權重: 4%
設置配置環境:
[student@node-1] $ kubectl config use-context k8s
Task
創建一個名為kucc4 的pod, 在pod里面分別為以下每個images單獨運行一個app container (可能會有1-4個images) :
nginx + redis + memcached

解題:

kubectl config use-context k8s cat 11.yaml kind: Pod apiVersion: v1 metadata:name: kubcc4 spec:containers:- name: nginximage: nginx- name: redisimage: redis- name: memcachedimage: memcachedkubectl apply -f 11.yaml

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十二題 創建 PV

問題權重: 4%
設置配置環境:
[student@node-1] $| kubectl config use-context hk8s
Task
創建名為app-data 的persistent volume,容量為2Gi,訪問模式為ReadWriteOnce 。volume 類型為hostPath, 位于/srv/app-data

答題:

kubectl config use-context hk8s cat 12.yaml apiVersion: v1 kind: PersistentVolume metadata:name: app-data spec:capacity:storage: 2GiaccessModes:- ReadWriteOncehostPath:path: "/srv/app-data"kubectl apply -f 12.yaml

https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十三題 Pod 使用 PVC

問題權重: 7%
設置配置環境:
[student@node-1] $ kubectl config use- context ok8s
Task
創建一個新的PersistentVolumeClaim ;
名稱: pv-volume
Class: csi-hostpath-sc
容量: 10Mi
創建一個新的Pod, 此Pod將作為volume掛載到
PersistentVolumeClaim :
名稱: web-server
Image: nginx
掛載路徑: /usr/share/nginx/html

配置新的pod,以對volume具有ReadWriteOnce權限。

最后,使用kubectl edit 或kubectl patch將PersistentVolumeClaim的容量擴展為70Mi,并記錄此更改。

kubectl config use- context ok8s # cat 12.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: pv-volume spec:storageClassName: nfs-serveraccessModes:- ReadWriteOnceresources:requests:storage: 10Mi --- apiVersion: v1 kind: Pod metadata:name: web-server spec:volumes:- name: task-pv-storagepersistentVolumeClaim:claimName: pv-volumecontainers:- name: web-serverimage: nginxports:- containerPort: 80name: "http-server"volumeMounts:- mountPath: "/usr/share/nginx/html"name: task-pv-storage kubectl apply -f 12.yaml # 擴容 PVC 容量 kubectl edit pvc pv-volume --save-config

https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十四題 獲取 Pod 錯誤日志

問題權重: 5%

設置配置環境:
[student@node-1] $ kubectl config use-context k8s

Task
監控pod bar的日志并:
提取與錯誤file-not-found 相對應的日志行
將這些日志行寫入/opt/KUTR00101/bar

kubectl logs bar | grep file-not-found > /opt/KUTR00101/bar

https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十五題 給 Pod 增加一個容器(邊車)

問題權重: 7%
設置配置環境:
[studentnode-1] $ kubectl config use- context k8s
Context
將一個現有的Pod集成到Kubernetes的內置日志記錄體系結構中(例如kubectl logs) 。添加streaning sidecar容器是實現此要求的一種好方法。
Task
使用busybox Image來將名為sidecar的sidecar容器添加到現有的Pod legacy-app 中。新的sidecar容器必須運行以下命令:
/bin/sh -c tail -n+1 -f /var/1og/legacy-app . log
使用安裝在/var/log的Volume,使日志文件legacy-app.log可用于sidecar容器。
除了添加所需的volume mount以外,請勿更改現有容器的規格。

kubectl config use-context k8s apiVersion: v1 kind: Pod metadata: name: legacy-app spec: containers: - name: count image: busybox args: - /bin/sh - -c - > i=0; while true; do echo "$i: $(date)" >> /var/log/legacy-app.log; sleep 1; done volumeMounts: - name: varlog mountPath: /var/log volumes: # volumes 塊在導出的 yaml 下面已經有了,在已有的添加下面兩行即可 - name: varlog emptyDir: {} kubectl get pod legacy-app -o yaml > legacy-app.yaml # 導出后修改文件 kubectl delete pod legacy-app kubectl apply -f legacy-app.yaml

https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十六題 統計使用 CPU 最高的 Pod

問題權重: 5%

設置配置環境:
[student@node-1] $ kubectl config use- context k8s

Task
通過pod label name=cpu-utilizer,找到運行時占用大量CPU的
pod,并將占用CPU最高的pod名稱寫入文件
/opt/KUTR00401/KUTR00401.txt (已存在)

答題:

kubectl config use-context k8s kubectl top pod -l name=cpu-utilizer --sort-by="cpu" –A # 然后將第一個 Pod 名稱寫到文件 echo "<podname>" > /opt/KUR00401.txt

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

第十七題 節點 NotReady 處理

問題權重: 13%

設置配置環境:
[student@node-1] $ kubectl config use-context wk8s

Task
名為wk8s-node-0 的Kubernetes worker node處于NotReady狀態。調查發生這種情況的原因,并采取相應措施將node恢復為Ready 狀態,確保所做的任何更改永久有效。

注意:

可使用以下命令通過ssh 連接到故障node: [student@node-1] $ ssh wk8s-node-0 可使用以下命令在該node上獲取更高權限: [student@w8ks-node-0] $ sudo -i

答題:

kubectl config use-context wk8s kubectl get node ssh wk8s-node-0 sudo -i systemctl status kubelet systemctl start kubelet systemctl enable kubelet

本博客相關視頻鏈接: https://www.ixigua.com/7080166741921235492?id=7151713414783042085

總結

以上是生活随笔為你收集整理的kubernetes CKA题库(附答案、视频)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。