题目一: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考试笔记的更多相关文章

  1. 关于如何准备CKA考试

    最近(2019年4月)通过了CKA考试,在此分享一下考试心得. CKA全称Certified Kubernetes Administrator,是一门在线考试,全程需要向考官分享摄像头和屏幕,考试费用 ...

  2. CKA考试个人心得分享

    考试相关准备: 真题:需要的私密: 网络:必须开启VPN,以便能访问国外网络,强烈建议在香港搭建相应FQ: 证件:考试需要出示含有拉丁文(英文)带照片的有效证件,相关有效证件参考(优先建议护照):ht ...

  3. CKA考试经验:报考和考纲

    1 报考相关 1.有效期一年.在一年内需要定好考试的时间. 2.提前15分钟进入考试系统, 提前进入考试系统后并不是立马开始考试,而是预留给考官时间考察你的考试环境 3.考试时间 ,注意报考的Time ...

  4. 2023年2月份CKA考试历程

    2023年2月份CKA 考试历程 目录 2023年2月份CKA 考试历程 一.购买CKA/CKS套餐 二.CKA 考试练习 三.CKA 第一次考试 考前考中 考后 四.CKA 第二次考试 五.考试的一 ...

  5. kubernetes学习:CKA考试认证

    考点 CKA认证针对考核成为当业界的Kubernetes管理员所需的技能. CKA认证考试包括这些一般领域及其在考试中的权重: 应用程序生命周期管理 -  8% 安装.配置和验证 -  12% 核心概 ...

  6. 备考2019年6月份PMP考试-分享一些考试笔记(二)

    最新比较经典的100道试题,有备考的小伙伴可以练练手,文章末尾附答案. 1     一个项目经理在运作一个数据中心安装项目.他发现相关方很恼火,因为他超出了预算,原因是人员费用要高于原先的计划.另外项 ...

  7. Java算法考试笔记

    1.快速构建排列树: void BackTrace(int t){//排列树 if(t<N){//如果没有到叶子结点 for(int i=t;i<N;i++){ swap(x,t,i); ...

  8. kubernetes学习:CKA考试认证(二)

    1. 它题的意思是 在 development 名称空间里面 找到名为 baz的 service 然后通过这个service的selector 找出 对应的pod . 要用   kubectl des ...

  9. CNCF基金会的Certified Kubernetes Administrator认证考试计划

    关于CKA考试 CKA(Certified Kubernetes Administrator)是CNCF基金会(Cloud Native Computing Foundation)官方推出的Kuber ...

  10. CKAD个人考试心得

    先晒一波本人的CKA和CKAD证书! 如下正式分享CKAD心得: 考试相关准备: l 练习:https://github.com/dgkanatsios/CKAD-exercises: l 网络:必须 ...

随机推荐

  1. 【数值计算方法】数值积分&微分-python实现

    目录 数值积分 1. 引言 2. 几个常用积分公式及其复合公式 2.1 求积公式 2.2 代数精度 2.3 复合积分 2.4 常用积分公式的python实现 3. 变步长方法与外推加速技术 4. 牛顿 ...

  2. FastAPI Cookie 和 Header 参数完全指南:从基础到高级实战 🚀

    title: FastAPI Cookie 和 Header 参数完全指南:从基础到高级实战 date: 2025/3/9 updated: 2025/3/9 author: cmdragon exc ...

  3. Surpac 安装

    修改config文件 share 文件进行整体替换 数字地质 环境配置问题总结 *http 报错! 块体生成数据暂停,点击生成验收量提交,报错生成失败!!! 解决方案:重新打开块体

  4. Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

    Qt使用QAudioInput.QAudioOutput实现局域网的音频通话 本文旨在介绍一下用Qt来实现局域网音频通话功能 文章目录 Qt使用QAudioInput.QAudioOutput实现局域 ...

  5. 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 ...

  6. nginx启动失败 Starting nginx nginx [fail]

    nginx -t :测试配置文件是否有语法错误 看看报什么错误,我的是忘记给权限了 nginx: [alert] could not open error log file: open() " ...

  7. Django实战项目-学习任务系统-任务管理

    接着上期代码框架,开发第3个功能,任务管理,再增加一个学习任务表,用来记录发布的学习任务的标题和内容,预计完成天数,奖励积分和任务状态等信息. 第一步:编写第三个功能-任务管理 1,编辑模型文件: . ...

  8. 编写你的第一个 Django 应用程序,第1部分

    让我们通过示例来学习. 在本教程中,我们将引导您完成基本投票应用程序 它将由两部分组成: 一个公共网站,允许人们查看投票并在其中投票. 允许您添加.更改和删除投票的管理网站. 一.开发环境搭建 第一步 ...

  9. PLSQL自动登录,记住用户名密码&日常使用技巧

    配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Develope ...

  10. 使用ssh连接virtual Box里的虚拟机

    使用ssh连接virtual Box里的虚拟机 需求:virtual Box提供的文件拖放功能在从虚拟机拖向主机时,会出现一些卡顿,因此考虑使用ssh代替其文件传输功能. 高级 -> 端口转发 ...