题目一: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. netcore后台服务慎用BackgroundService

    在 .NET Core 开发中,BackgroundService 是一个非常方便的后台任务运行方式,但它并不适用于所有场景. BackgroundService 一时爽,并发火葬场. Backgro ...

  2. 【 Python 】补全fibersim 导出的xml语法

    fibersim导出的xml文件中,node 和mesh部分的标签会缺失.即<R></R>变成了<R/>. 以下python脚本可以自动修正 # ********* ...

  3. google浏览器删除token

    测试登录时长,页面是否返回到首页 删除token

  4. NSIS打包脚本模板

    ; Script generated by the HM NIS Edit Script Wizard. ; HM NIS Edit Wizard helper defines !define PRO ...

  5. 【Web】Servlet三大作用域、JSP四大作用域

    request 生命周期: 创建:客户端向服务器发送一次请求,服务器就会创建request对象. 销毁:服务器对这次请求作出响应后就会销毁request对象. 有效:仅在当前请求中有效. 作用:常用于 ...

  6. 记载火狐浏览器下的一次新手级的js解密工作

    警告:该随笔内容仅用于合法范围下的学习,不得用于任何商业和非法用途,不得未经授权转载,否则后果自负. 首先是需要解密的网站:https://www.aqistudy.cn/historydata/mo ...

  7. OpenEuler RISC-V 上跑bitcoin(实战版)

      不久前刚在OpenEuler 24.09 RISC-V上部署了 bitcoin,不过还没跑起来,这次我打算在这个环境下面运行一些应用服务,体验一下 OERV 的开发感觉.   编译出来的 bitc ...

  8. 卸载重装vscode

    最近工作需要长期用到python,但我的老电脑又实在拉不起pycharm那配置,干脆就用vscode了,但本来我的vscode是用来写c/c++的,安装配置一通乱搞,现在也不知道怎么配置回来了. 干脆 ...

  9. CPU 和GPUskinning对比

    CPU: 比如广泛的设备兼容性,比如上面说的精确逻辑处理,比如可以根据距离对Skinning进行LOD(如近距离角色每秒30帧Skinning,远距离角色每秒15帧Skinning),比如多Pass渲 ...

  10. 一文速通 Python 并行计算:07 Python 多线程编程-线程池的使用和多线程的性能评估

    一文速通 Python 并行计算:07 Python 多线程编程-线程池的使用和多线程的性能评估 摘要: 本文介绍了 Python 线程池(ThreadPoolExecutor)的使用方法,包括线程池 ...