云原生|kubernetes|CKA真题解析-------(11-17题)

news2024/11/18 18:36:04

第十一题:

创建多容器的pod
题目要求:

解析:

多容器pod的创建,先创建一个单容器的pod,然后在此基础上修改即可

解答:

先创建单容器的pod

kubectl run kucc1 --image=nginx --dry-run=client -oyaml >11.yaml

修改11.yaml如下:

 cat 11.yaml 
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: kucc1
  name: kucc1
spec:
  containers:
  - image: nginx
    name: nginx
  - image: memcached
    name: memcached
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

 验证:

root@k8s-master:~# kubectl apply -f 11.yaml 
pod/kucc1 created
root@k8s-master:~# kubectl get po kucc1 
NAME    READY   STATUS    RESTARTS   AGE
kucc1   2/2     Running   0          43s

对应的官网文档:https://kubernetes.io/zh/docs/concepts/workloads/pods/  

第十二题:

按要求创建PV

解析:

pv的创建不能使用命令直接创建,因此,需要到官网找模板,官网模板地址:配置 Pod 以使用 PersistentVolume 作为存储 | Kubernetes 

解答:

拷贝官网第一个模板,模板原文如下:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

按题意修改成下面这个样子:

去掉StorageClassName这一行,修改存储路径,存储容量

 

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-config
  labels:
    type: local
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/srv/app-config"

 测试:

由于此pv还没有被任何pvc绑定,因此,现在的状态是available,名称,容量大小,访问模式都和题目对上即可。

root@k8s-master:~# kubectl apply -f 12-pv.yaml 
persistentvolume/app-config created
root@k8s-master:~# kubectl get pv -A
NAME         CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
app-config   2Gi        RWO            Retain           Available                                   16s

第十三题:

创建和使⽤PVC

解析:

仍然还是上一题的官网地址:配置 Pod 以使用 PersistentVolume 作为存储 | Kubernetes 

按题意要求创建一个pvc使用storageClass,sc名称是应用到名称为web-server的pod上面。

解答:

从官方文档拷贝模板文件:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

 pvc的创建-----按照题意修改容量为10Mi,修改为如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-volume
spec:
  storageClassName: csi-hostpath-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Mi

 pod的创建----仍然是从官网文档拷贝:

apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

修改成如下:

apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  volumes:
    - name: pv-volume
      persistentVolumeClaim:
        claimName: pv-volume
  containers:
    - name: web-server
      image: nginx
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: pv-volume

 pvc的扩容:

首先查看sc是否支持扩容:

可以看到ALLOWVOLUMEEXPANSION是true,表示此sc是支持扩容的

root@k8s-master:~# kubectl get sc
NAME              PROVISIONER                                   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
csi-hostpath-sc   k8s-sigs.io/nfs-subdir-external-provisioner   Delete          Immediate           true                   362d
kubectl edit pvc pv-volume --record

按题目要求修改后保存即可。 

测试:

查看pvc的状态,是bound绑定状态为正确:

root@k8s-master:~# kubectl get pvc
NAME        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
pv-volume   Bound    pvc-59909415-e9c2-44c1-9f77-848baa508921   10Mi       RWO            csi-hostpath-sc   6m47s

 查看pod的详情,可以看到正确的挂载pvc:

root@k8s-master:~# kubectl describe pod web-server 
Name:         web-server
Namespace:    default
Priority:     0
Node:         k8s-node2/192.168.123.152
Start Time:   Wed, 21 Dec 2022 17:05:59 +0800
Labels:       <none>
Annotations:  cni.projectcalico.org/containerID: 6636d0358690a5e72617c4537ffdcb5bd22927fa90db11f6b97d074e9eab9d66
              cni.projectcalico.org/podIP: 10.244.169.180/32
              cni.projectcalico.org/podIPs: 10.244.169.180/32
Status:       Running
IP:           10.244.169.180
IPs:
  IP:  10.244.169.180
Containers:
  web-server:
    Container ID:   docker://02fc362221efc4ebdb95b5b9c4dd74e1f6ca69f4d9cb34f553261538b8a76530
    Image:          nginx
    Image ID:       docker-pullable://nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Wed, 21 Dec 2022 17:06:17 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /usr/share/nginx/html from pv-volume (rw)

 

 第十四题:

监控pod的⽇志

解析:

这道题十分简单,输出日志到指定文件内即可

解答:

kubectl logs foobar | grep unable-to-access-website >/opt/KUTR00101/foobar

 

第十五题:

添加 sidecar 容器并输出⽇志

解析:

通过 kubectl get pod -o yaml 的⽅法备份原始 pod 信息,删除旧的pod 11-factor-app
copy ⼀份新 yaml ⽂件,添加 ⼀个名称为 sidecar 的容器,新建 emptyDir 的卷,确保两个容器都挂载
了 /var/log ⽬录,新建含有 sidecar 的 pod,并通过 kubectl logs 验证
此题主要是根据官方文档来进行; 日志架构 | Kubernetes
修改 admin/logging/two-files-counter-pod-streaming-sidecar.yaml  这个文件即可
解答:

 验证:

kubectl logs 11-factor-app sidecar  #验证⽇志输出
0: Thu Dec 23 15:15:50 UTC 2021
0: Thu Dec 23 15:15:55 UTC 2021
0: Thu Dec 23 15:16:00 UTC 2021
第十六题:
查看 cpu 使⽤率最⾼的 pod

 这个也是送分题了。

解答:

root@k8s-master:~# kubectl top pod -l name=cpu-loader -A --sort-by='cpu'
NAMESPACE     NAME                CPU(cores)   MEMORY(bytes)   
kube-system   calico-node-4l4ll   42m          131Mi           

可以看看这个pod的标签都有哪些:

root@k8s-master:~# kubectl get  pods -n kube-system calico-node-4l4ll --show-labels 
NAME                READY   STATUS    RESTARTS        AGE    LABELS
calico-node-4l4ll   1/1     Running   19 (161m ago)   378d   controller-revision-hash=6b57d9cd54,k8s-app=calico-node,name=cpu-loader,pod-template-generation=1

第十七题:

排查集群中故障节点

 

解析:

题目说的是一个工作节点down掉了,节点名册是wk8s-node-0 ,那么,造成节点down掉的原因有很多,必须要登录这个节点,然后查看各个服务的状态,当然,首要的服务是kubelet,如果服务正常,那么,还需要查看系统日志来进一步判断。

解答:

登陆wk8s-node-0 节点后,发现kubelet服务停止了,启动后,查看kubelet服务是否正常即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css实现环形进度条

效果&#xff1a; 纯css实现进度条&#xff0c;这里用到的核心属性为box-show&#xff0c;box-show可以控制元素的阴影&#xff0c;通过控制元素阴影的移动位置来实现进度条效果。 .box{box-show : 0px 0px 0px 0px #ccc; }box-show有5个参数 第一个参数&#xff1a; 控制元…

第4章 中级SQL

第4章 中级SQL 考试范围&#xff1a; 4.1-4.7 考试题型&#xff1a; 计算题 考试内容&#xff1a; 连接类型&#xff08;与第3章合并考察&#xff09; 视图的定义与使用 事务&#xff08;与17-19章合并考察&#xff09; 完整性的概念 SQL中如何定义、修改各类完整性(Pr…

JVS低代码多账号统一登录介绍

登录操作演示 统一登录能力 JVS整个系统认证采用Oauth2 认证方案&#xff0c;目前支持目前登陆方式如下&#xff1a; 登录方式 说明 账号密码登录 基于JVS的用户名用户密码登录 手机动态验证码登录 基于JVS用户绑定的手机号动态验证码登录 微信扫码关注公众号登录 基于…

web前端-javascript-Math对象(说明和方法,它封装了数学运算相关的属性和方法)

文章目录Math 对象1. 说明2. 方法1) abs()2) Math.ceil()3) Math.floor()4) Math.round()5) Math.random()6) max 和 min7) Math.pow(x,y)8) Math.sqrt()Math 对象 1. 说明 Math 和其他的对象不同&#xff0c;它不是一个构造函数它属于一个工具类不用创建对象&#xff0c;它里…

仿真设计|基于51单片机的简易抢答器

目录 前言 具体实现功能 设计介绍 51单片机简介 设计方案 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部资料&#xff08;压缩文件&#xff09; 前言 全部资料包括程序(Keil5)、protues仿真(protues8.7)、仿真视频、…

教育领域知识图谱

教育领域开源的知识图谱实体 在教育领域,有许多开源的知识图谱实体可供使用。下面列出了一些例子: DBpedia:这是一个知识图谱,由 Wikipedia 的内容构建而成。DBpedia 中包含了许多关于人、地方、事物和概念的实体,并且这些实体都具有相关的属性和关系。 Wikidata:这是一个…

LeetCode算法之--二叉树系列

点赞收藏&#xff0c;以防遗忘 本文【程序大视界】已收录&#xff0c;关注免费领取互联网大厂学习资料&#xff0c;添加博主好友进群学习交流&#xff0c;欢迎留言和评论&#xff0c;一起交流共同进步。 【一】前言 二叉树也是面试算法的常见题型&#xff0c;通常程序会自定义…

Go秒杀系统——RabbitMQ核心概念与工作模式

前言&#x1f4ac; Windows 上的 RabbitMQ 被我卸载了&#xff0c;在 macOS 上再安装一下&#xff0c;采用 brew install 还是挺方便的。 很好奇微软的程序员写代码用的是 Windows 操作系统吗&#xff1f;感觉有点不方便&#xff0c;但用 macOS 岂不是太丢撵了。 一、macOS 安装…

APS排程软件提升电子产品生产企业的服务效益

"3C产品"&#xff0c;就是计算机、通信和消费类电子产品三者结合&#xff0c;也称"信息家电"。由于3C产品的体积一般都不大&#xff0c;所以往往在中间加一个"小"字&#xff0c;故往往统称为"3C小家电"。 据报道&#xff0c;某一科技公…

使用DoraCloud免费版搭建办公桌面云

DoraCloud是一款多平台的桌面虚拟化管理软件&#xff0c;支持Hyper-V、VMware、Proxmox、XenServer等多种虚拟化平台。DoraCloud在虚拟化平台上具有极大的灵活性&#xff0c;允许您的组织自由选择合适的IT基础设施来构建桌面云&#xff1b;也允许您的组织重用现有的IT设施基础&…

B树和B+树的详解讲解

1.B树 前面我们已经学习了二叉查找树、2-3树以及它的实现红黑树。2-3树中&#xff0c;一个结点做多能有两个key&#xff0c;它的实现红黑树中使用对链接染色的方式去表达这两个key。接下来我们学习另外一种树型结构B树&#xff0c;这种数据结构中&#xff0c;一个结点允许多于…

Java LinkedList

链表&#xff08;Linked list&#xff09;是一种常见的基础数据结构&#xff0c;是一种线性表&#xff0c;但是并不会按线性的顺序存储数据&#xff0c;而是在每一个节点里存到下一个节点的地址。 链表可分为单向链表和双向链表。 一个单向链表包含两个值: 当前节点的值和一个…

linux软件安装

软件安装1.安装方式2.安装jdk3.安装Tomcat4.安装mysql5.安装lrzsz1.安装方式 2.安装jdk &#xff08;1&#xff09;使用 Xftp 将jdk的二进制包上传到 Linux。 关于 Xftp 的下载和安装看这里&#xff1a; https://blog.csdn.net/weixin_56680764/article/details/126335138 本文…

C++:using : using的四大用法总结

1&#xff1a;using声明&#xff08;引入单个名称&#xff09; using声明是将命名空间中某个名字单独引入到当前作用域&#xff0c;这使得我们在当前作用域下可以直接使用该名字而无需使用作用域限定符 :: 。 #include <string> using std::string; int main() {string…

TKDE2022 | 基于关系的协同过滤算法,利用注意力机制来学习物品关系的嵌入特征...

嘿&#xff0c;记得给“机器学习与推荐算法”添加星标鉴于经典的协同过滤算法的有效性和易用性&#xff0c;基于物品的协同过滤方法已被广泛应用于工业领域&#xff0c;并在近年来被广泛研究。基于物品的协同过滤方法的关键在于物品之间的相似度测量&#xff0c;但本文认为这是…

推荐系统学习笔记-推荐系统数据流

一般数据流 数据流的定义 数据流&#xff08;data stream&#xff09;是一组有序&#xff0c;有起点和终点的字节的数据序列。包括输入流和输出流。数据流最初是通信领域使用的概念&#xff0c;代表传输中所使用的信息的数字编码信号序列。这个概念最初在1998年由Henzinger提…

《软件开发本质论》笔记——如何衡量价值

目录 一、使用数值来表示价值的做法 二、大多数与金钱有关的衡量指标的局限性 三、有没有一个简单的衡量方式 四、价值评估更好的做法 个人理解的价值 一、使用数值来表示价值的做法 这种方式可能让我们滑入深渊。 比如 如果公司开发产品的目的是赚钱&#xff0c;那么就可…

记一次:Keepalived安装高可用操作

前言&#xff1a;现在有许多现成的高可用产品&#xff0c;比如阿里的产品等等&#xff0c;直接购买就可以使用。这个只是笔者自己私下练习使用&#xff0c;成功了。所以记一次总结过程 安装方式一 下载安装包&#xff1a;https://keepalived.org/download.html网址下载2.2.7版…

【小程序】第一个小程序——创建小程序项目

目录 小程序简介 第一个小程序 安装开发者工具 创建小程序项目 小程序简介 1. 小程序与普通网页开发的区别 2. 体验小程序 可使用手机微信(6.7.2 及以上版本)扫码下方小程序码&#xff0c;体验小程序&#xff1a; 第一个小程序 1. 点击注册按钮 使用浏览器打开 https…

【大数据技术】Spark MLlib机器学习库、数据类型详解(图文解释)

机器学习的定义 机器学习是一种通过利用数据&#xff0c;训练出模型&#xff0c;然后使用模型预测的一种方法。机器学习的构建过程是利用数据通过算法构建出模型并对模型进行评估&#xff0c;评估的性能如果达到要求就拿这个模型来测试其他的数据&#xff0c;如果达不到要求就…