互联网最全cka真题解析-2022
1、CKA真题解析
kubectl自动补全及帮助信息
1、配置kubectl自动补全
apt install bash-completion
source <(kubectl completion bash)
2、kubectl explans 帮助信息
3、kubectl 命令 -h 帮助信息
4、官网
https://kubernetes.io/
1
2
3
4
5
6
7
8
9
10
11
第1题 RBAC 授权(强制记忆,3条命令)
考点:RBAC 授权模型的理解。
考题
参考链接
没必要参考网址,使用-h 帮助更方便。
kubectl create clusterrole -h
kubectl create serviceaccount -h
kubectl create rolebinding -h
https://kubernetes.io/docs/reference/access-authn-authz/rbac/#command-line-utilities
https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/
解答
考题答案
1、切换环境
kubectl config use-context kubernetes
2、配置
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,daemonsets,statefulsets
kubectl create serviceaccount cicd-token -n app-team1
# 题目中写了“限于 namespace app-team1 中”,则创建 rolebinding。没有写的话,则创建 clusterrolebinding。
kubectl create rolebinding cicd-token-rolebinding --serviceaccount=app-team1:cicd-token --clusterrole=deployment-clusterrole -n app-team1
# rolebinding 后面的名字 cicd-token-rolebinding 随便起的,因为题目中没有要求,如果题目中有要求,就不能随便起了。
3、验证
#稍微验证下
kubectl describe rolebinding cicd-token-rolebinding -napp-team1
1
2
3
4
5
6
7
8
9
10
11
12
13
注意:我们可以用describle命令看下刚才新建的rolebinding来验证下:
答题技巧
#说明:
解题三步骤:
1.创建clusterrole
2.创建serviceaccount
3.将新的clusterrole绑定到新的serviceaccount :rolebinding
1.之前我们是通过yaml文件进行创建的,这次通过命令行进行创建;(直接强制记忆就好;)
2.从书签链接可以找到一些命令,但是尽量建议熟悉记忆上面3条命令,直接敲出来即可;(直接搜索`一些命令行工具`关键字即可)
此题注意事项:
一般来水,如下是对应绑定的:(但是也可以rolebinding和clusterrole对应)
role --> rolebinding 有ns之说
clusterrole --> clusterrolebinding 无ns之说
serviceaccount 有ns之说
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
第2题 统计使用 CPU 最高的 Pod(强制记忆,送分题)
考点:kubectl top -l 命令的使用
考题
参考链接
没必要参考网址,使用-h 帮助更方便。
kubectl top pod -h
https://kubernetes.io/docs/reference/kubectl/cheatsheet/#interacting-with-running-pods
解答
1、切换环境
kubectl config use-context kubernetes
2、配置
kubectl top pod -l name=cpu-utilizer --sort-by="cpu" -A #-A是所有namespace 不要忘记写哦,-l也要记得写哦。。。
echo "<podname>" > /opt/KUR00401.txt # 将第一个 Pod 名称写到文件
#写完后记得检查下那个保存结果的文件
3、验证
cat /opt/KUR00401.txt
1
2
3
4
5
6
7
8
9
10
11
答题技巧
metric-server已经准备好了,我们不用管;
1
第3题 网络策略(拷贝yaml)(注意yaml位置)
(考题知识点:kubernetes安全章节/网络策略)7’
考题
双重否定就是肯定,所以最后两句话的意思就是:
仅允许端口为 8080 的 pod 访问。
仅允许 my-app命名空间中的 pod 访问。
️ 码的,这个翻译起来真的有点别扭。。。。。
参考链接
解答
原课件答案
1、切换环境
kubectl config use-context hk8s
2、配置
#如果访问者的 namespace 没有标签 label,则需要手动打一个。如果有一个独特的标签 label,则也可以直接使用。
给命名空间打标签:kubectl label namespace big-corp name=big-corp
编写一个 yaml 文件
vim networkpolicy.yaml
#注意 :set paste,防止 yaml 文件空格错序。
apiVersion: networking.kubernetes.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-from-namespace
namespace: my-app #被访问者的命名空间
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: big-corp #访问者的命名空间的标签
ports:
- protocol: TCP
port: 8080 #被访问者公开的端口
kubectl apply -f networkpolicy.yaml
3、验证
kubectl get networkpolicy -nmy-app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
答题技巧
这个题也是争议比较大,这个题目翻译后比较模糊,先按照下面答案来做就行。这个题一直也没变过;直接从官方yaml拷贝过来,删除没用的,修改为题目要求的,就好;
1
官方yaml
apiVersion: networking.kubernetes.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
删除egress,ingress里的ipBlock,podSelector部分,修改spec.podSelector后面为空。
另一个版本
检查:
第4题 SVC 暴露应用(强制记忆)
考点:将现有的 deploy 暴露成 nodeport 的 service。
考题
参考链接
强制记忆即可。
解答
解题
1、切换环境
kubectl config use-context kubernetes
2、配置
kubectl edit deployment front-end
…
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
ports:
- name: http #额额,这里要加一个-横杠的。。。
protocol: TCP #protocol不写也是可以的,因为默认就是TCP
containerPort: 80
…
kubectl expose deployment front-end --port=80 --target-port=80 --type=NodePort --name=front-end-svc #注意:这里--name(不要忘记了。。。。)svc类型:NodePort/ClusterIP; --port是svc的端口号,--target-port是deployment里pod的容器的端口号
#验证:(看下他们的SELECTOR标签是否一致)
kubectl get svc front-end-svc -owide
kubectl get deployment front-end -owide
curl 节点名/节点ip:NodePort
curl svcIP:port
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
答题技巧
无链接,理解记忆即可;
1
另一个版本(知道即可)
第5题 Ingress创建(拷贝yaml)(注意yaml位置)
考点:Ingress 的创建
考题
-k:跳过SSL证书检测
-L:跟随跳转,比如网站做了重定向,不加这个选项的话只会看到一个302的访问代码就结束了,加上的话会看到完整的跳转情况
参考链接
️ yaml路径:
参考资料:https://kubernetes.io/zh/docs/concepts/services-networking/ingress/
解答
课件答案
1、切换环境
kubectl config use-context k8s
2、配置
vim ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pong
namespace: ing-internal
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /hello
pathType: Prefix
backend:
service:
name: hello
port:
number: 5678
#如果测试结果没有hello输出,则可以尝试删除annotations字段内容;
# 注意,如果等待5min后,这个还是出不来Ip时,可以看下那个hello服务类型是不是ClusterIP类型,如果不是,请修改为ClusterIp
3、验证
kubectl get ingress -ning-internal
curl -kL internal_IP/hello
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
答题技巧
1.直接从官方代码复制过来修改下即可;
2.如果测试结果没有hello输出,则可以尝试删除annotations字段内容;
3.注意,一般自己的学习环境是看不到这个ingress 的 IP 地址的,而考试环境是可以的;
1
2
3
官方yaml代码需要修改的地方
注意:ingress资源还要加上一个namesapce的。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pong
namespace: ing-internal
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /hello
pathType: Prefix
backend:
service:
name: hello
port:
number: 5678
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
另一版本
暂时忽略。。。
第6题 扩容 deployment 副本数量(强制记忆,送分题)
(考题知识点:kubernetes管理应用声明周期pod)4’
考题
参考链接
没必要参考网址,使用-h 帮助更方便。
kubectl scale deployment -h
https://kubernetes.io/zh-cn/docs/tasks/run-application/scale-stateful-set/
解题
1、切换环境
kubectl config use-context k8s
2、配置
kubectl scale deployment loadbalancer --replicas=5
3、验证
kubectl get po
kubectl get deployment
1
2
3
4
5
6
7
8
9
这里可以先检查下pod数量哈哈
第7题 调度 pod 到指定节点(强制记忆,送分题)
考点:nodeSelect 属性的使用
考题
参考链接
解答
参考资料:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/
https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/ 这个需要打开pod的链接。。。nodeSelector那里的链接不见了的。。。。
解题
互联网最全cka真题解析-2022的更多相关文章
- 《PHP程序员面试笔试真题解析》——新书上线
你好,是我--琉忆.很高兴可以跟你分享我的新书. 很高兴,在出版了PHP程序员面试笔试宝典后迎来了我的第二本书出版--<PHP程序员面试笔试真题解析>. 如果你是一个热爱PHP的程序员,刚 ...
- 蓝桥杯Java真题解析
上个月参加蓝桥杯省赛拿了个省一,自从比赛完之后就一直没怎么写代码了,还有一个多月就要国赛了,从现在开始准备下国赛,但是我也不想学什么算法,而且我还在准备考研,所以就打算只做下历年的真题,争取国赛拿个国 ...
- 2021年最新字节跳动Android面试真题解析
概述 时间过得是真TM快,回想自己是16年从学校毕业,现在是出来工作的第五个年头啦.在不同的大小公司都待过,就在前段时间顺利的完成了一次跳槽涨薪,面试了几家公司,最终选择了字节跳动.今特此前来跟大家进 ...
- python基础---递归函数真题解析
方法一.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. 即: {'k ...
- 笔试真题解析 ALBB-2015 算法project师实习生机试
1.用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0. [解析] 计算N.下3进制结果末尾有多少个0,事实上就是计算3进制中的3被进位多少次,仅仅要 ...
- 2013年蓝桥杯省赛C/C++A组真题解析
1.高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的 ...
- 第七届蓝桥杯javaB组真题解析-四平方和(第八题)
题目 /* 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1 ...
- 第七届蓝桥杯javaB组真题解析-剪邮票(第七题)
题目 /* 剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票. 现在你要从中剪下5张来,要求必须是连着的. (仅仅连接一个角不算相连) 比如,[图2.jpg],[图3.jpg]中,粉红色 ...
- 第七届蓝桥杯javaB组真题解析-分小组(第四题)
题目 /* 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF G ...
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
题目 /* 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始 ...
随机推荐
- 解决centos系统突然间网络不通的问题:Global IPv6 forwarding is disabled in configuration, but not currently disabled in kernel
问题描述:公司里的一台centos 7.6主机,连接公司的路由器,里面设置的静态ip,之前用的好好的,但是有一次突然间ping不通了,之前是可以ping通的. 问题分析: 查看网络配置文件: TYPE ...
- 【前端必会】前端开发利器VSCode
介绍 工欲善其事必先利其器,开发工具方面选择一个自己用的顺手的,这里就用VSCode 安装参考 https://www.runoob.com/w3cnote/vscode-tutorial.html ...
- PAT (Basic Level) Practice 1008 数组元素循环右移问题 分数 20
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN ...
- 关于AWS-EC2或者多个资源的tag的批量添加-基于Resource Groups & Tag Editor 和 命令处理
今天收到一个请求,需要对公司所有的ec2-添加上两个成本IO标签,因为机器太多了 想到了如下两种方案去批量处理 方案一:利用aws的 [Management Tools]下的 Resource Gro ...
- 手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea
Gitea 支持在 Windows 系统上安装和使用.Gitea 本身作为一个单体应用程序,即点即用,如需长期驻留作为后台服务并开机运行就要依靠 Windows 服务工具 sc.exe. 通过本文,你 ...
- 基于tauri打造的HTTP API客户端工具-CyberAPI
国庆长假和朋友聚会的时候,和朋友谈起最近这段时间捣鼓tauri,写了一个HTTP API客户端工具.『你写了这么多东西,其实有想过是为了啥不?』为了啥这是一个很大的命题,当初每个项目的时候都想过它应该 ...
- 华为路由器RIP路由协议配置命令
RIP路由协议配置 rip 创建开启协议进程 network + ip 对指定网段接口使能RIP功能IP地址是与路由器直连的网段 debugging rip 1 查看RIP定期更新情况 termina ...
- HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
文章目录 1.相对定位 1.1 代码 1.2 测试结果 2.绝对定位 2.1 代码 2.2 测试 3.固定定位 3.1 代码 3.2 测试结果 1.相对定位 1.1 代码 <!DOCTYPE h ...
- 齐博x1如果把万能表单直接插入到内容中去
很多时候,你创建了一个万能表单可能像下面这个情况,在文章中加一个链接叫别人点击填表,其实这个很不人性化,用户也容易忽略. 其实你完全可以像下面这样,把表单直接引用到文章中来.给用户更直观的感觉 那是如 ...
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测.车距计算等基本功能,作为辅助驾驶入门级 ...