所需E币: 0
时间: 2023-9-1 10:37
大小: 1.78KB
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。k8s通常被描述为一个容器编排(containerorchestration)平台。为了理解这个含义,让我们重新审视容器的作用,这有助于知道容器有哪些不足,以及k8s如何弥补这些不足。为什么我们喜欢使用容器?容器提供了一个轻量级的机制来隔离应用程序的环境。对于一个给定的应用程序,我们可以指定其配置和所需要安装的依赖,而不用担心其与同一台物理机上其他的应用程序发生冲突。我们将每个应用程序封装在容器镜像(containerimage)中,容器镜像可以可靠地运行在任何机器(只要机器有能力运行容器镜像)上,能够提供可移植的能力,即支持应用开发到部署的平滑过渡。此外,因为每个应用是独立的,不用担心环境冲突,所以在同一台物理机上可以部署多个容器,实现更高的资源(内存和CPU)利用率,最终降低成本。日志搜集当我们在FlinkonK8s上运行一个作业,有一个功能性问题无法回避,就是日志。如果是运行在YARN上,YARN会帮我们做这件事,例如在Container运行完成时,YARN会把日志收集起来传到HDFS,供后期查看。但是K8s并未提供日志搜集与存储,所以我们可以有很多选择去做日志(收集、展示)的事情。尤其是当作业因为异常导致POD退出,POD退出后日志会丢失,这将导致异常排查变得非常困难。首先往Kubernetes集群提交了资源描述文件后,会启动Master和Worker的container。MasterContainer中会启动FlinkMasterProcess,包含Flink-ContainerResourceManager、JobManager和ProgramRunner。WorkerContainer会启动TaskManager,并向负责资源管理的ResourceManager进行注册,注册完成之后,由JobManager将具体的任务分给Container,再由Container去执行。需要说明的是,MasterContainer与WorkerContainer是用一个镜像启动的,只是启动参数不一样。session模式FlinkSession集群作为长时间运行的KubernetesDeployment执行。你可以在一个Session集群上运行多个Flink作业。每个作业都需要在集群部署完成后提交到集群。Kubernetes中的FlinkSession集群部署至少包含三个组件:运行JobManager的部署TaskManagers池的部署暴露JobManager的REST和UI端口的服务