CKA考试笔记
题目一:etcd升级
1、从内置快照中备份数据
ETCDCTL_API=3 etcdctl --endpoints=https://master:2379 \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
snapshot save $etcd-backup
注意:证书路径从etcd pod的描述中查看;提示没有etcdctl 命令则执行下面命令:
wget "https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz" && tar -zxvf etcd-v3.3.9-linux-amd64.tar.gz && ln -s /root/cka/etcd-v3.3.9-linux-amd64/etcdctl /usr/local/bin/etcdctl
2、验证快照:
ETCDCTL_API=3 etcdctl --write-out=table snapshot status $etcd-backup
+----------+----------+------------+------------+
| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| e4be98dc | 549192 | 2601 | 5.5 MB |
+----------+----------+------------+------------+
3、从快照备份数据:
ETCDCTL_API=3 etcdctl --endpoints master:2379 snapshot restore $etcd-backup
题目二:查看集群中状态为ready的node数量,不包含被打了 NoSchedule污点的节点,并将结果写 到/opt/node.txt
kubectl describe node $(kubectl get node | grep Ready | awk '{print $1}') | grep Taints | grep -vc NoSchedule > /opt/node.txt
题目三:设置成node不能调度,并使已被调度的pod重新调度。
kubectl cordon my-node
kubectl drain my-node --ignore-daemonsets
题目四:给一个pod创建service,并可以通过ClusterIP访问
kubectl expose pod web --port=80 --target-port=80
题目五:列出命名空间下某个service关联的所有pod,并将 pod名称写到/opt/pod.txt文件中(使用标签筛选)
kubectl get svc web -o wide
kubectl get pod -l app=web -o name > /opt/pop.txt
题目五:创建一个RBAC规则
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: deployment-clusterrole
rules:
- apiGroups: ["apps"]
resources: ["deployment","statefulset","daemonset"]
verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-secrets
namespace: app-team1
subjects:
- kind: ServiceAccount
name: cicd-token
namespace: app-team1
roleRef:
kind: ClusterRole
name: deployment-clusterrole
apiGroup: rbac.authorization.k8s.io
题目六 创建一个Pod使用PV自动供给
apiVersion: v1kind: Podmetadata: name: pod-pvcspec: containers: - name: busybox image: busybox command: ["/bin/sh", "-c","sleep 6000"] volumeMounts: - name: data mountPath: /opt volumes: - name: data persistentVolumeClaim: claimName: block-pvc---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: block-pvcspec: storageClassName: my-csi-plugin accessModes: - ReadWriteMany resources: requests: storage: 5Gi---apiVersion: v1kind: PersistentVolumemetadata: name: block-pvcspec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle hostPath: path: /tmp
题目七 创建一个secret,分别使用环境变量和env的方式挂载
apiVersion: v1kind: Secretmetadata: name: mysecretdata: username: YWRtaW4K password: MTIzNDU2Cg==---apiVersion: v1kind: Podmetadata: name: pod-volume-secretspec: containers: - name: pod-volume-secret image: nginx volumeMounts: - name: mysecret mountPath: "/etc/foo" volumes: - name: mysecret secret: secretName: mysecret---apiVersion: v1kind: Podmetadata: name: pod-env-secretspec: containers: - name: pod-env-secret image: nginx env: - name: ABC valueFrom: secretKeyRef: name: mysecret key: username volumes: - name: mysecret secret: secretName: mysecret
题目八 创建一个Pod,检测到没有相应的文件则自动退出。
apiVersion: v1kind: Podmetadata: name: web labels: app: myappspec: restartPolicy: Never containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c', 'cat /root/test.txt && sleep 3000'] volumeMounts: - mountPath: /root name: test-volume initContainers: - name: init-myservice image: busybox:1.28 command: ["sh","-c","touch /root/test.txt"] volumeMounts: - mountPath: /root name: test-volume volumes: - name: test-volume emptyDir: {}
题目九 创建一个pod使用pvc,并对这个PVC进行扩容
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: slowprovisioner: kubernetes.io/gce-pdparameters: type: pd-standard#需要先定义一个存储类,增加“allowVolumeExpansion: true”参数允许动态扩容。allowVolumeExpansion: true---apiVersion: v1kind: Podmetadata: name: web-serverspec: containers: - name: nginx image: nginx volumeMounts: - mountPath: "/usr/share/nginx/html" name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: myclaim---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: myclaim
常用命令:
临时运行一个测试容器:kubectl run test --image=busybox --restart=Never -it
CKA考试笔记的更多相关文章
- 关于如何准备CKA考试
最近(2019年4月)通过了CKA考试,在此分享一下考试心得. CKA全称Certified Kubernetes Administrator,是一门在线考试,全程需要向考官分享摄像头和屏幕,考试费用 ...
- CKA考试个人心得分享
考试相关准备: 真题:需要的私密: 网络:必须开启VPN,以便能访问国外网络,强烈建议在香港搭建相应FQ: 证件:考试需要出示含有拉丁文(英文)带照片的有效证件,相关有效证件参考(优先建议护照):ht ...
- CKA考试经验:报考和考纲
1 报考相关 1.有效期一年.在一年内需要定好考试的时间. 2.提前15分钟进入考试系统, 提前进入考试系统后并不是立马开始考试,而是预留给考官时间考察你的考试环境 3.考试时间 ,注意报考的Time ...
- 2023年2月份CKA考试历程
2023年2月份CKA 考试历程 目录 2023年2月份CKA 考试历程 一.购买CKA/CKS套餐 二.CKA 考试练习 三.CKA 第一次考试 考前考中 考后 四.CKA 第二次考试 五.考试的一 ...
- kubernetes学习:CKA考试认证
考点 CKA认证针对考核成为当业界的Kubernetes管理员所需的技能. CKA认证考试包括这些一般领域及其在考试中的权重: 应用程序生命周期管理 - 8% 安装.配置和验证 - 12% 核心概 ...
- 备考2019年6月份PMP考试-分享一些考试笔记(二)
最新比较经典的100道试题,有备考的小伙伴可以练练手,文章末尾附答案. 1 一个项目经理在运作一个数据中心安装项目.他发现相关方很恼火,因为他超出了预算,原因是人员费用要高于原先的计划.另外项 ...
- Java算法考试笔记
1.快速构建排列树: void BackTrace(int t){//排列树 if(t<N){//如果没有到叶子结点 for(int i=t;i<N;i++){ swap(x,t,i); ...
- kubernetes学习:CKA考试认证(二)
1. 它题的意思是 在 development 名称空间里面 找到名为 baz的 service 然后通过这个service的selector 找出 对应的pod . 要用 kubectl des ...
- CNCF基金会的Certified Kubernetes Administrator认证考试计划
关于CKA考试 CKA(Certified Kubernetes Administrator)是CNCF基金会(Cloud Native Computing Foundation)官方推出的Kuber ...
- CKAD个人考试心得
先晒一波本人的CKA和CKAD证书! 如下正式分享CKAD心得: 考试相关准备: l 练习:https://github.com/dgkanatsios/CKAD-exercises: l 网络:必须 ...
随机推荐
- 【数值计算方法】数值积分&微分-python实现
目录 数值积分 1. 引言 2. 几个常用积分公式及其复合公式 2.1 求积公式 2.2 代数精度 2.3 复合积分 2.4 常用积分公式的python实现 3. 变步长方法与外推加速技术 4. 牛顿 ...
- FastAPI Cookie 和 Header 参数完全指南:从基础到高级实战 🚀
title: FastAPI Cookie 和 Header 参数完全指南:从基础到高级实战 date: 2025/3/9 updated: 2025/3/9 author: cmdragon exc ...
- Surpac 安装
修改config文件 share 文件进行整体替换 数字地质 环境配置问题总结 *http 报错! 块体生成数据暂停,点击生成验收量提交,报错生成失败!!! 解决方案:重新打开块体
- Qt使用QAudioInput、QAudioOutput实现局域网的音频通话
Qt使用QAudioInput.QAudioOutput实现局域网的音频通话 本文旨在介绍一下用Qt来实现局域网音频通话功能 文章目录 Qt使用QAudioInput.QAudioOutput实现局域 ...
- ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
报错 ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared me ...
- nginx启动失败 Starting nginx nginx [fail]
nginx -t :测试配置文件是否有语法错误 看看报什么错误,我的是忘记给权限了 nginx: [alert] could not open error log file: open() " ...
- Django实战项目-学习任务系统-任务管理
接着上期代码框架,开发第3个功能,任务管理,再增加一个学习任务表,用来记录发布的学习任务的标题和内容,预计完成天数,奖励积分和任务状态等信息. 第一步:编写第三个功能-任务管理 1,编辑模型文件: . ...
- 编写你的第一个 Django 应用程序,第1部分
让我们通过示例来学习. 在本教程中,我们将引导您完成基本投票应用程序 它将由两部分组成: 一个公共网站,允许人们查看投票并在其中投票. 允许您添加.更改和删除投票的管理网站. 一.开发环境搭建 第一步 ...
- PLSQL自动登录,记住用户名密码&日常使用技巧
配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Develope ...
- 使用ssh连接virtual Box里的虚拟机
使用ssh连接virtual Box里的虚拟机 需求:virtual Box提供的文件拖放功能在从虚拟机拖向主机时,会出现一些卡顿,因此考虑使用ssh代替其文件传输功能. 高级 -> 端口转发 ...