kubernetes资源类型--pod和job

简介: pod Pod是K8S的最小操作单元,一个Pod可以由一个或多个容器组成;整个K8S系统都是围绕着Pod展开的,比如如何部署运行Pod、如何保证Pod的数量、如何访问Pod等。 特点 Pod是能够被创建、调度和管理的最小单元; 每个Pod都有一个独立的IP; 一个Pod由一个或多个容器构成,并共享.

pod

Pod是K8S的最小操作单元,一个Pod可以由一个或多个容器组成;整个K8S系统都是围绕着Pod展开的,比如 如何部署运行Pod、如何保证Pod的数量、如何访问Pod等。

特点

Pod是能够被创建、调度和管理的最小单元;

每个Pod都有一个独立的IP;

一个Pod由一个或多个容器构成,并共享所有资源,主要包括:PID、Network、IPC、UTS、共享存储等;Pod所有容器在同一个Node上;

容器生命周期管理;

对资源使用进行限制,resources(requests、limits);

对容器进行探测:livenessProbe;

集群内的Pod之间都可以任意访问,这一般是通过一个二层网络来实现的。

Pod与容器

在Docker中,容器是最小的处理单元,增删改查的对象是容器,容器是一种虚拟化技术,容器之间是隔离的,隔离是基于Linux Namespace实现的。

而在K8S中,Pod包含一个或者多个相关的容器,Pod可以认为是容器的一种延伸扩展,一个Pod也是一个隔离体,而Pod内部包含的一组容器又是共享的(包括PID、Network、IPC、UTS)。除此之外,Pod中的容器可以访问共同的数据卷来实现文件系统的共享。

Pod生命周期

Pod被分配到一个Node上后,就不会离开这个Node,直到被删除。当某个Pod失败,首先会被K8S清理掉,之后将会在其它机器上(或本机)重建Pod,重建后Pod的ID发生变化,那将会是一个新的Pod。所以,K8S中Pod的迁移,实际指的是在新Node上重建Pod。

生命周期回调函数:PostStart(容器创建成功后调用该回调函数)、PreStop(在容器被终止前调用该回调函数)。以下示例中,定义了一个Pod,包含一个JAVA的web应用容器,其中设置了PostStart和PreStop回调函数。即在容器创建成功后,复制/sample.war到/app文件夹中。而在容器终止之前,发送HTTP请求到http://monitor.com:8080/waring,即向监控系统发送警告。

一pod多容器

Pod主要是在容器化环境中建立一个面向应用的“逻辑主机”模型,它可以包含一个或多个相互间紧密联系的容器。当其中任一容器消失时,该节点上的Pod也随之被删除。

一pod多容器,让多个同应用的单一容器整合到一个类虚拟机中,使其所有容器共用一个vm的资源,提高耦合度,从而方便副本的复制,提高整体的可用性。

一pod多容器的优势:

同个Pod下的容器之间能更方便的共享数据和通信使用相同的网络命名空间、IP地址和端口区间,相互之间能通过localhost来发现和通信。

在同个Pod内运行的容器共享存储空间(如果设置),存储卷内的数据不会在容器重启后丢失,同时能被同Pod下别的容器读取。

相比原生的容器接口,Pod通过提供更高层次的抽象,简化了应用的部署和管理,不同容器提供不同服务。Pod就像一个管理横向部署的单元,主机托管、资源共享、协调复制和依赖管理都可以自动处理。

yaml文件格式请见http://blog.csdn.net/liyingke112/article/details/76155428

Job

在有些场景下,是想要运行一些容器执行某种特定的任务,任务一旦执行完成,容器也就没有存在的必要了。在这种场景下,创建pod就显得不那么合适。于是就是了Job,Job指的就是那些一次性任务。通过Job运行一个容器,当其任务执行完以后,就自动退出,集群也不再重新将其唤醒。

从程序的运行形态上来区分,可以将Pod分为两类:长时运行服务(jboss、mysql等)和一次性任务(数据计算、测试)。RC创建的Pod都是长时运行的服务,Job多用于执行一次性任务、批处理工作等,执行完成后便会停止(status.phase变为Succeeded)。

在Job的定义中,restartPolicy(重启策略)只能是Never和OnFailure。

OnFailure(当容器异常终止退出时重启):在出现故障时其内部重启容器,而不是创建。

Never(从不重启):会在出现故障时创建新的,且故障job不会消失。


设置超时:job执行超时时间可以通过spec.activeDeadlineSeconds来设置,超过指定时间未完成的job会以DeadlineExceeded原因停止

apiVersion: v1 kind: Job metadata:
 labels:
 name: lykops-job
 name: lykops-job
spec:
 template:
 metadata:
 name: lykops-job
 spec:
 containers:
 - name: lykops-job
 image: web:apache
 command:
 - sleep
 - 300


在v1.5无法实现,使用pod来代替

apiVersion: v1 kind: Pod metadata:
 labels:
 app: container1
 version: apache
 namespace: default
 name: container1
spec:
 containers:
 -args:
 -"30"
 command:
 -sleep
 image: web:apache
 name: container1
 restartPolicy: OnFailure #或者Never
本文转自开源中国- kubernetes资源对象--ResourceQuotas
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
21天前
|
前端开发 编解码 数据格式
浅谈响应式编程在企业级前端应用 UI 开发中的实践
浅谈响应式编程在企业级前端应用 UI 开发中的实践
20 0
浅谈响应式编程在企业级前端应用 UI 开发中的实践
|
23天前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
29 0
|
1月前
|
Prometheus Kubernetes 监控
容器服务ACK常见问题之pod设置securityContext调整参数失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
1月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
12天前
|
存储 Kubernetes 调度
Kubernetes Pod生命周期
Kubernetes Pod生命周期
19 0
Kubernetes Pod生命周期
|
12天前
|
存储 Kubernetes 应用服务中间件
Kubernetes Pod
Kubernetes Pod
42 0
Kubernetes Pod
|
23天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
16 0
|
23天前
|
存储 Kubernetes 调度
K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(下)
本文全面探讨了Kubernetes集群中Pod的四种关键机制——Pod亲和性、污点(Taints)、容忍度(Tolerations)、生命周期以及健康探测,为读者提供了深入理解并有效应用这些特性的指南。
|
23天前
|
Kubernetes 网络协议 Perl
k8s Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory
k8s Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory
22 0
|
1月前
|
Kubernetes Nacos 微服务
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
24 1
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决

推荐镜像

更多