https://segmentfault.com/a/1190000021380185
  • 1.列出pod并排序
kubectl get pod --sort-by .metadata.name

题目一般都是按名字排序
  • 2.找出pod中的错误日志
kubectl logs heapster-798fcd9949-lk9rc | grep error > xx.txt

要求是把错误内容输出到某个文件中,可以粘贴,也可以直接重定向文件
  • 3.创建一个pod ,并调度到某个节点上
命令行创建pod的方法可以参考攻略的pdf,主要参数是--restart=Never,否则就会是deployment

kubectl run nginx-pod --image=nginx --port=80 --restart=Never --dry-run -o yaml > pod.yaml

先导出一份示例yaml出来,记得保存好这份yaml,后面也要用的

在yaml的spec属性中增加 nodeName: xxx

创建pod:kubectl create -f pod.yaml
  • 4.列出正常节点的个数
kubectl get node 

如何判断正常节点:一般都是not ready

get或者describe node排查node信息,把可用数写到一个文件中,文件里写一个数字就行了,不要多写空格换行之类的,谨记
  • 5.pod中挂载volume
  直接使用这个文档的示例就行,不用改啥东西
文档地址:https://kubernetes.io/docs/concepts/storage/volumes/
  • 6.提供一个pod,添加init-container ,在container中添加一个空文件,启动的时候。在另一个containre中检测是否有这个文件,否则退出

文档地址:https://kubernetes.io/docs/co...

apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: nginx-pod
name: nginx-pod
spec:
containers:
- image: nginx
name: nginx-pod
command: ['sh','-c','if [ -f "a.txt" ]; then echo xx ;fi']
ports:
- containerPort: 80
resources: {}
volumeMounts:
- name: workdir
mountPath: /usr/nginx/html
dnsPolicy: ClusterFirst
initContainers:
- image: busybox
name: initcheck
command: ['sh','-c','touch /tmp/index.html']
volumeMounts:
- name: workdir
mountPath: /tmp
volumes:
- name: workdir
emptyDir: {}
  • 7.创建pod,再创建一个service
pod的模板使用前几题留下的yaml,改下就行了

   service的nodePort类型:https://kubernetes.io/docs/concepts/services-networking/service/

   注意:校验nodePort是否通,不要在中控机上校验,登录到node去校验

   也有可能让你建cluster-ip类型
   
  • 8.在一个pod中创建2个容器,如redis+nginx
apiVersion: v1
kind: Pod
metadata:
name: demo
spec:
containers:
- image: nginx
name: nginx
- image: redis
name: redis
  • 9.找到指定service下的pod中,cpu利用率按高到底排序

    按selector查找

kubectl get pod --selector="run=demo" | awk '{ print $1}' | grep -v NAME | 

或者找到pod后,一个一个看
kubectl top pod | grep -v NAME | sort -k 3
  • 10.创建一个简单的daemonset
文档地址:https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

文档中给的yaml内容太多了,volume都可以删掉

daemonset创建好后会发现pod数小于节点数,可以看下节点是不是打了taint
  • 11.deployment的扩容 ,scale命令
kubectl scale --replicas=4 deployment demo
  • 12 创建secret,有一个paasword字段(手动base64加密),创建两个pod引用该secret,一个用env ,一个用volume来调用
这个文档里面全都有,记住链接

https://kubernetes.io/docs/concepts/configuration/secret/
  • 13.先将nginx:1.9的deployment,升级到nginx:1.11,记录下来(—record),然后回滚到1.9

升级

kubectl set image deployments demo demo=nginx:1.11 --record

回滚

kubectl rollout undo deployment demo
  • 14.使用ns lookup 查看service 和pod的dns
service和pod的创建用之前的yaml
查看dns

kubectl run -it --image busybox:1.28.4  dnstest --rm /bin/sh

sevice:

nslookup svc-demo.kube-system.svc.cluster.local

pod:

nslookup 1-2-3-4.default.pod.cluster.local

查看pod ip时,要把1.2.3.4换成1-2-3-4,否则会报错

对应的文档:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
  • 15.etcdctl 来 备份etcd
ETCDCTL_API=3 etcdctl --endpoints ....snapshot save  xxx 根据-h提示写就行了

先声明环境变量ETCDCTL_API=3 ,不然etcdctl 是v2版本

这个文档:

文档地址:https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/
  • 16.static pod的使用
文档地址:https://kubernetes.io/docs/tasks/administer-cluster/static-pod/

找到--pod-manifest-path=/etc/kubelet.d/配置的位置,然后把pod的yaml放进去

apiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
role: myrole
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
  • 17.在一个新的namespace创建pod

    先创建ns,在创建pod,和前面步骤类似

  • 18.pv 类型hostpath 位置在/data , 大小为1G , readonly模式
文档地址:

https://kubernetes.io/docs/concepts/storage/persistent-volumes/
  • 20.给pod创建service
  • 21.使用node selector,选择disk为ssd的机器调度
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
disktype: ssd

22.排查apiserver连接不上问题:

用的kubeadmin安装的,是kubelet的配置中目录地址有问题
  • 23.把一个node弄成unavailable 并且把上边的pod重新调度去新的node上

    应该是直接drain,需要注意daemonset要强制删除,或者给节点打污点,taint,再去删掉

  • 24.tls bootstrap加入节点(题目超长,时间一般都是不够用的。可以选择性放弃,这题8分)

参考作答:https://lingxiankong.github.i...

文档地址:https://kubernetes.io/docs/re...

[转帖]CKA 真题的更多相关文章

  1. 互联网最全cka真题解析-2022

    1.CKA真题解析kubectl自动补全及帮助信息1.配置kubectl自动补全apt install bash-completion source <(kubectl completion b ...

  2. 2020年11月CKA新题考试心得体会

    1 什么是CKA CKA,即Certificated Kubernetes Administrator,CNCF官方提供的Kubernetes技能认证,含金量还是不错的.还有CKAD,相对简单一些,没 ...

  3. 2016.1.4~2016.1.7真题回顾!-- HTML5学堂

    2016.1.4~2016.1.7真题回顾!-- HTML5学堂 2015悄然而逝,崭新的2016随即而行!生活需要新鲜感,学习JavaScript的过程需要有成就感!成就感又是来自于每一天的不断练习 ...

  4. 2015.12.29~2015.12.30真题回顾!-- HTML5学堂

    2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...

  5. 2015.12.21~2015.12.24真题回顾!-- HTML5学堂

    2015.12.21~2015.12.24真题回顾!-- HTML5学堂 山不在高,有仙则名!水不在深,有龙则灵!千里冰封,非一日之寒!IT之路,须厚积薄发!一日一小练,功成不是梦!小小技巧,尽在HT ...

  6. 网易实习笔试真题C/C++

    刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下.里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_m ...

  7. 你只是看起来很努力(只是做了一遍真题,草草的对了一遍答案,然后冲出自习室继续她学生会的事情了,骗自己更容易)good——想起了自己在六大时候的无奈

    (转)你只是看起来很努力一次上课,一个女孩子垂头丧气的跟我说,老师,我考了四次四级,还没过,究竟是为什么. 我说,你真题做了吗?单词背了吗?她拿出已经翻破了的真题,跟我说,你讲的所有的题目我连答案都记 ...

  8. 考试宝典-真题园安卓AppV2.1.0新版发布啦,全新界面,全新体验,全面适配Android 5.0&6.0系统!

    真题园移动客户端是真题园网 http://www.zhentiyuan.com 旗下的一款学习考试应用App. 1.全新适配Android5.0.6.0系统,重新优化架构网络通信模块. 2.全新清爽U ...

  9. 考试必备神器-真题园手机客户端Android版1.1正式上线啦,欢迎大家下载使用!

    真题园-考试必备神器,爱学习,找真题! 真题园-考试必备神器,爱学习,找真题!1.真题园android客户端1.1版全新发布上线.2.最新教育资讯实时更新,了解行业动态新闻.3.最新最全的真题大全,最 ...

  10. 第四届蓝桥杯 c/c++真题

    第四届蓝桥杯 c/c++真题 <1>高斯日记 问题 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们 ...

随机推荐

  1. C# / VB.NET 获取PDF文档的数字签名信息

    文档中的数字签名具有不可否认性,可有效防伪防篡改.对文档中已有的数字签名信息,可通过一定方法获取,下面通过程序代码介绍如何来实现.程序中,使用了Spire.PDF.dll,版本:6.11.6,可自行在 ...

  2. 第一部分_Shell介绍

    SHELL介绍 前言: 计算机只能认识(识别)机器语言(0和1),如(11000000 这种).但是,我们的程序猿们不能直接去写01这样的代码,所以,要想将程序猿所开发的代码在计算机上运行,就必须找& ...

  3. GaussDB(DWS)条件表达式函数返回错误结果集排查

    摘要:条件表达式函数中出现结果集不一致问题,我们首先要考虑是否入参数据类型不一致导致出参不一致. 本文分享自华为云社区<GaussDB(DWS)条件表达式函数返回错误结果集排查>,作者:y ...

  4. bucket表:数仓存算分离中CU与DN解绑的关键

    摘要:Bucket存储是数据共享中重要的一环,当前阶段,bucket存储可以将列存中的CU数据和DN节点解绑. 本文分享自华为云社区<存算分离之bucket表--[玩转PB级数仓GaussDB( ...

  5. Solon Logging 日志插件的记录器、添加器级别控制

    有需要的人可以记下 solon.logging.appender: console: level: TRACE #设置级别,默认为 TRACE enable: true #是否启用,默认为 true ...

  6. C# 使用SqlDataAdapter和DataSet来访问数据库

    使用SqlDataAdapter和DataSet来访问数据库 报:已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭 解决方法,使用 using 包住 connectio ...

  7. Axure Axhub Charts 数据编辑、显示

    Axhub Charts图表元件库: https://www.axureshop.com/a/100749.html

  8. hystrix.stream dashboard

    9001 POM.XML <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

  9. Jenkins Pipeline 流水线 - 上传文件 Publish over SSH + Docker 编译 + 上传到阿里仓库

    Jenkins Pipeline 流水线 Publish over SSH 将jar上传到远程 Docker 服务器.执行编译命令生成镜像.将镜像上传到阿里仓库 Publish over SSH Ja ...

  10. termius macos 破解版,激活版下载,永久激活,亲测可用

    termius 是一款非常值得推荐的 SSH/SFTP 跨平台终端工具,其十分亮眼的功能是可以上传文件夹,这是其他几款终端工具都不具备的,比如说 macOS 自带的终端.号称 21 世纪最强终端的 w ...