设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
Kubernetes集群多容器POD实验报告
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  
ottom: 0px; -ms-text-justify: inter-ideograph;">28. # List all replication controllers and services together in ps output format.

29. kubectl get rc,services

30.

31. # List one or more resources by their type and names.

32. kubectl get rc/web service/frontend pods/web-pod-13je7

查看容器日志的命令:

1. kubectl logs hpe-myweb

进入容器的命令:

1. kubectl exec -ti hpe-myweb -- bash

查看帮助信息:

1. kubectl get -h

,

实验报告

目录

一、 课堂练习

实践 — 启动Kubernetes集群

5) 删除Pod $ kubectl delete pod hpe-myweb

实践 — Pod实践(续)

1) 创建hpe-mysql Pod

2) 创建hpe-myweb Pod

3) 访问hpe-myweb Pod

1) RC的创建和删除

2) Pod故障自动恢复

3) Pod副本扩容和缩容

4) 容器应用滚动升级

二、 课后作业

1. 完成课堂实践要求的练习,包括pod、rc等操作,要求截图

5. Pod内的容器端口号有哪几种设置,各自的差异是什么?

8. 描述RC可以实现的主要功能

1、查看已有pod的label标签。

一、 课堂练习

实践 — 启动Kubernetes集群

代码:

1) 启动集群:./1-start.sh

2) 验证:kubectl get nodes

运行截图:

实践 — Pod实践

代码:

1) Pod的创建 $ kubectl create -f hpe-myweb-pod.yaml $ kubectl get pods

2) Pod的日志 $ kubectl logs hpe-myweb

3) 登录进入Pod $ kubectl exec -ti hpe-myweb -- bash

4) 查看Pod详细信息 $ kubectl describe pod hpe-myweb

5) 删除Pod $ kubectl delete pod hpe-myweb

运行截图:

1、启动集群+Pod创建

2、Pod日志

3、进入Pod

4、查看Pod详细信息

5、删除Pod

实践 — Pod实践(续)

代码:

1) 创建hpe-mysql Pod

a) $ kubectl create -f hpe-mysql-pod.yaml

b) $ kubectl describe pod hpe-mysql

c) 查看pod的IP:172.17.1.2

2) 创建hpe-myweb Pod

a) $ vi hpe-myweb-pod.yaml env: - name: MYSQL_SERVICE_HOST value: '172.17.1.2'

b) $ kubectl create -f hpe-myweb-pod.yaml

3) 访问hpe-myweb Pod

a) $ kubectl exec -ti hpe-myweb -- bash

b) $ curl http://localhost:8080/demo/

运行截图:

1、创建hpe_mysql Pod,IP为10.1.95.6

2、创建hpe-myweb Pod

3、访问hpe-myweb Pod

实践 — RC的应用

代码:

1) RC的创建和删除

a) $ kubectl create -f hpe-myweb-v1-rc.yaml

b) $ kubectl get rc,pods 查看RC的详细信息,查看event事件

c) $ kubectl describe rc hpe-myweb

2) Pod故障自动恢复

a) $ kubectl delete pod hpe-myweb-atkft

b) $ kubectl get pods

3) Pod副本扩容和缩容

a) $ kubectl scale rc hpe-myweb --replicas=3

4) 容器应用滚动升级

a) $ kubectl rolling-update --poll-interval=2s --update-period=2s hpe-myweb -- image=myweb_image:v2

运行截图:

1、RC的创建和删除

2、Pod故障自动恢复

3、Pod副本扩容和缩容

4、容器应用滚动升级

二、 课后作业

题目:

1. 完成课堂实践要求的练习,包括pod、rc等操作,要求截图

解答:

见上面课堂作业部分

题目:

2. 一个Pod内多个容器可用于哪些应用场景?(对应KEM的哪些功能)

解答:

应用场景:

多容器POD的主要用途是支持主要应用程序的共定位、共管辅助进程。在一个POD中有多个容器,使它们相对简单地进行通信。

Ø Sidecar containers:"帮助"主容器,比如日志文件监视器.一个日志监视器构建完成以后,可以由不同的应用来使用.另一个示例是sidecar 容器为主容器加载文件和运行需要的数据

Ø 代理,桥接和适配器:使主容器与外部世界联通.比如Apache http服务器或者nginx可承载静态文件.也可以做为一个web的反向代理服务器.

题目:

3. 运行中的一个Pod实际由几个容器组成,分别提供什么功能?

解答:

组成:

每一个pod的组成是由一个或者多个业务容器加上一个称之为“根容器”的pause容器构成。

功能:

业务容器提供不同的业务功能,pause根容器可以代表整个pod容器组的状态,利于我们准确的掌握整个pod的状态。

题目:

4. 已部署的pod的yaml如何查看,系统比用户提交的yaml补充了哪些内容?哪些字段表示“状态”信息,分别代表什么含义?

解答:

查看方式:

使用该命令查看已部署pod的yaml:kubectl get pod hpe-myweb -o yaml

补充内容:

Ø 在metadata中补充了annotations、creationTimestamp、managedFields、namespace、ownerReferences、resourceVersion、selfLink、uid等信息。

Ø 在spec中补充了dnsPolicy、enableServiceLinks、nodeName、preemptionPolicy、priority等信息。

状态信息:

此外还补充了status状态信息,内容为:

1. - lastProbeTime: null

2.    lastTransitionTime: "2021-06-27T04:23:39Z"

3.    status: "True"

4.    type: Initialized

5.  - lastProbeTime: null

6.    lastTransitionTime: "2021-06-27T04:23:41Z"

7.    status: "True"

8.    type: Ready

9.  - lastProbeTime: null

10.    lastTransitionTime: "2021-06-27T04:23:41Z"

11.    status: "True"

12.    type: ContainersReady

13.  - lastProbeTime: null

14.    lastTransitionTime: "2021-06-27T04:23:39Z"

15.    status: "True"

16.    type: PodScheduled

17.  containerStatuses:

18.  - containerID: docker://441bf2642a0da09f73c5343cf55fcca50daa4f0e

19.    image: myweb_image:v1

20.    imageID: docker://sha256:8362178fdb14bc045f2305de960522ae57edf

21.    lastState: {}

22.    name: myweb

23.    ready: true

24.    restartCount: 0

25.    started: true

26.    state:

27.      running:

28.        startedAt: "2021-06-27T04:23:40Z"

29.  hostIP:  192.168.18.3(主机ip地址)

30.  phase: Running(运行状态)

31.  podIP:  10.1.95.7(创建pod的ip)

32.  podIPs:

33.  - ip:  10.1.95.7

34.  qosClass: BestEffort

35.  startTime: "2021-06-27T04:23:39Z"(开始使用的时间)

题目:

5. Pod内的容器端口号有哪几种设置,各自的差异是什么?

解答:

设置:

1. ports:                //容器需要暴露的端口号列表

2.     - name: String        //端口的名称

3.       containerPort: int  //容器要暴露的端口

4.       hostPort: int       //容器所在主机监听的端口(容器暴露端口映射到宿主机的端口),默认与containerPort相同,设置hostPort时,同一台主机将无法启动该容器的第二个副本

5.       protocol: String    //端口协议,支持TCP和UDP,默认为TCP

差异:

containerPort是容器要暴露的端口,而hostPort是容器所在主机监听的端口,protocol是端口协议(包含TCP和UDP),name则是端口名称。

containerPort实际上就是容器自身的端口,而hostPort则是containerPort映射到宿主机上的端口,这个我们可以在虚拟机中的端口映射里进程修改。

题目:

6. Pod内的容器可以使用哪些volume类型,各种volume的主要特点是什么?各种volume类型数据保存在什么位置?

解答:

类型与特点:

Ø Kubernetes 支持很多类型的卷,Pod可以同时使用任意数目的卷类型。

Ø 临时卷类型的生命周期与Pod相同,但持久卷可以比 Pod 的存活期长。

Ø 当 Pod 不再存在时,Kubernetes 也会销毁临时卷;不过 Kubernetes 不会销毁持久卷。

Ø 对于给定Pod中任何类型的卷,在容器重启期间数据都不会丢失。

保存位置:

Cache或appdata中,和类型(临时卷或长期卷)有关。

题目:

7. 部署一个Pod,包含2个容器,设置一个2个容器都可以访问的volume,在一个容器中写文件,另一个容器中读文件的内容,要求截图

解答:

1、启动two-container-pod.yaml,可以看到debian容器被终止而nginx服务器仍然在运行,在debian容器中写入下面这句话(这是two-containers中的内容)

2、可以看到,two-containers中有2个pods

3、进入nginx容器,先安装一下指令

4、 debian容器在nginx的根目录下创建了index.html文件。使用curl向 nginx 服务器发送一个GET请求,输出结果表示nginx提供了debian容器写的页面。

题目:

8. 描述RC可以实现的主要功能

解答:

主要功能:保证Pod的数量、健康,弹性收缩等。

RC(Replication Controller)保证了在所有时间内,都有特定数量的Pod副本在运行:如果太多了,RC就杀死几个;如果太少了,RC会新建几个。

与直接创建pod不同的是,RC会替换掉那些删除的或者被终止的pod,不管删除的原因是什么。

题目:

9. 描述Label的主要功能,给RC和Pod设置Label,设置有关联和无关联的两种情况,要求截图

解答:

Label主要功能:

Label(标签)是Kubernetes中一个核心个概念,一个Label是一个key=value的键值对,其中key与value都是用户自定义的。Label可以添加到各种资源对象上,如Node、Pod、Service、RC等。Label通常在资源对象定义时确定,也可以在对象创建后动态添加或删除。通常通过给指定的资源对象捆绑一个或多个不同的Label来实现多维度的资源分组管理功能。这里的Label是将rc和对应的pod匹配起来。

过程:

1、查看已有pod的label标签。

2、查看已有rc的label标签,这个时候有三个pod是与rc有关联的。rc也是为了确保pod中有三个label为app=hpe-myweb的pod。

3、改写其中一个pod的Label标签并查看pod的信息和标签,发现hpe-myweb和rc已经无关联,所以rc又生成一个新的hpe-myweb,标签为app=hpe-myweb。

4、将该pod的label恢复,由于rc的存在,要保证里面只有3个pod所以恢复原样。

题目:

10. 描述workload控制器RC、Deployment、Daemonset、Statefulset的特点和功能

解答:

RC:

Ø 管理Pod

Ø 保证Pod的数量、健康,弹性收缩

Deployment:

Ø 部署无状态应用

Ø 管理Pod和ReplicaSet

Ø 具有上线部署、副本设定、滚动升级、回滚等功能

Ø 提供声明式更新,例如只更新一个新的Image

StatefulSet:

Ø 部署有状态应用

Ø 每个节点都有固定身份ID

Ø 集群的规模比较固定

Ø 如果磁盘损坏,集群内的某个节点无法运行

DaemonSet:

Ø 在每一个Node上运行一个Pod

Ø 新加入的Node也同样会自动运行一个Pod

题目:

11. 描述Job、Cronjob的特点和功能,以及与其他控制器的主要区别

解答:

特点和功能:

Ø Job:负责批量处理短暂的一次性任务,仅执行一次,并保证处理的一个或者多个Pod成功结束。

Ø Cronjob:负责定时任务,在指定的时间周期运行指定的任务。

与其他控制器区别:

Job作为Kubernetes中用于处理任务的资源,与其他的资源没有太多的区别,它也使用 Kubernetes 中常见的控制器模式,监听Informer中的事件并运行syncHandler同步任务

而CronJob由于其功能的特殊性,每隔 10s会从apiserver中取出资源并进行检查是否应该触发调度创建新的资源,需要注意的是CronJob并不能保证在准确的目标时间执行,执行会有一定程度的滞后。

题目:

12. 网上查询资料,描述Deployment、Daemonset、Statefulset的滚动升级策略和区别

解答:

Deployment控制器:

Deployment 为 Pod 和 ReplicaSet 提供了一个申明式的定义方法。

典型的应用场景:

Ø 用来创建Pod和ReplicaSet

Ø 滚动更新和回滚

Ø 扩容和缩容

Ø 暂停与恢复

DaemonSet控制器:

DaemonSet确保全部(或者某些)节点上运行一个Pod的副本。当有节点加入集群时,也会为他们新增一个Pod。当有节点从集群移除时,这些Pod也会被回收。删除 DaemonSet将会删除它创建的所有Pod。

DaemonSet的典型用法:

Ø 在每个节点上运行集群存储DaemonSet, 例如glusterd、ceph

Ø 在每个节点上运行日志收集DaemonSet,例如fluentd、logstash

Ø 在每个节点上运行监控DaemonSet,例如Prometheus Node Exporter、zabbix agent等

Ø 一个简单的用法是在所有的节点上都启动一个DaemonSet,将被作为每种类型的daemon使用。

Ø 一个稍微复杂的用法是单独对每种daemon类型使用多个DaemonSet,但具有不同的标志,并且对不同硬件类型具有不同的内存、CPU要求。

StatefulSet控制器:

StatefulSet是用来管理有状态应用的工作负载API对象。实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,称为“有状态应用"。

StatefulSet用来管理Deployment和扩展一组Pod,井且能为这些Pod提供*序号和唯一性保证*。

StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值:

Ø 稳定的、唯一的网络标识符。

Ø 稳定的、持久的存储。

Ø 有序的、优雅的部署和缩放。

Ø 有序的、自动的滚动更新。

题目:

13. kubectl get 命令查看常见的资源对象有哪些,有什么缩写?查看容器日志的命令?进入容器内的命令?如何查看帮助信息?

解答:

Get命令查看对象:

1. # List all pods in ps output format.

2. kubectl get pods

3.

4. # List all pods in ps output format with more information (such as node name).

5. kubectl get pods -o wide

6.

7. # List a single replication controller with specified NAME in ps output format.

8. kubectl get replicationcontroller web

9.

10. # List deployments in JSON output format, in the "v1" version of the "apps" API group:

11. kubectl get deployments.v1.apps -o json

12.

13. # List a single pod in JSON output format.

14. kubectl get -o json pod web-pod-13je7

15.

16. # List a pod identified by type and name specified in "pod.yaml" in JSON output format.

17. kubectl get -f pod.yaml -o json

18.

19. # List resources from a directory with kustomization.yaml - e.g. dir/kustomization.yaml.

20. kubectl get -k dir/

21.

22. # Return only the phase value of the specified pod.

23. kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}

24.

25. # List resource information in custom columns.

26. kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image

27.

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
选择榨汁机的诚实指南 通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!