Kubermetes Pod入门

Pod是一个或多个容器的组合,这些容器共享存储,网络和命名空间,以及运行规范,在Pod中,所有容器都被统一安排和调度,并运行在共享的上下文中,对于具体应用而言,Pod是他们的逻辑主机,Pod包含业务相关的多个应用容器,所以,Pod是一组具有共享命名空间,IP地址和端口的容器的集合

1:从使用的角度来看

在实际的使用时,单个容器是无法单独来支撑我们的应用的,往往需要很多微服务才能组成一个系统,并且还会存在A服务依赖B服务,B服务需要和C服务共用某个目录。另外,在使用裸容器时,很难实现对容器内进行健康检査以及横向扩容等操作,而 Pod 可以轻松解决这些问题。

2:从Kubernetes 的角度来看

Docker 只是容器 Runtime(运行时)的一种们还有很多容器 Runtime,比如 Rkt、CRI-0等,而 Kubernetes 作为目前最流行的容器编排工具,需要支持各个 Runtime 并且不依赖于底层Runtime 的实现技术,于是就抽象出了 Pod 这个概念,用于管理多个紧密相连的符合 CRI 标准的容器。

Pod 可以简单的理解为一组、一个或多个容器,每个 Pod 还包含一个 Pause 容器,Pause 容器是 Pod 的父容器,主要负责僵尸进程的回收管理。同时,通过 Pause 容器可以使同一个 Pod里面的不同容器共享存储、网络、PID、IPC等,容器之间可以使用 Localhost:Port 的方式相互访问,可以使用 volume 实现数据共享。根据 Docker 的构造,Pod 可以被创建为一组具有共享命名空卷、IP 地址和端口的容器。

Pod状态字段

1.Pending(挂起)

2.Running(运行中)

3.Succeeded(所以容器执行成功,并终止)

4.Failed(失败)

Pod探针

在生产环境中,进程正常启动并不代表能正常处理请求,所以合理的设计应用的健康检查尤其重要,在使用裸机或裸容器部署时,一般很难对应用做很完善的健康检查,而Pod提供的探针可以很方便的用来检测的应用是否正常,目前探针有三种检测方式,可以根据不同的场景选择合适的健康检查方式

Pod探针的实现方式

ExecAction : 在容器内执行一个指定的命令,如果命令返回值为0,则认为容器健康

TCPSocketAction:通过TCP连接检查指定的端口,如果端口开放,则认为容器健康

HTTPGetAction:对指定的URL进行Get请求,如果状态码在200-400之间,则认为容器健康

表3:Pod 探针检查容器后可能得到的状态

状态

Success(成功)

Failure(失败)

Unknown(未知)

说明

容器通过检查

容器检查失败

诊断失败,因此不采取任何措施

三:Pod 镜像拉取策略和重启策略

在发布应用或者更改控制器配置时,会触发Pod 的滚动更新,此时针对容器的镜像有不同的拉取方式。如表 4所示。

表 4:镜像拉取策略

操作方式

Always

Never

IfNotPressent

说明

总是拉取,无论镜像是否存在,总是拉取

无论是否存在都不会拉取

镜像不存在时拉取镜像,是 k8s 默认的策略,但是如果 tag为latest,则总是拉取

相关推荐
悟空胆好小1 小时前
分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
网络·人工智能·科技·嵌入式硬件
ssswywywht2 小时前
OSPF实验
网络
FCM662 小时前
HCIA第一次实验报告:静态路由综合实验
网络·tcp/ip·信息与通信
apihz2 小时前
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
android·服务器·开发语言·网络·数据库·网络协议·tcp/ip
dog2503 小时前
TCP 传输时 sk_buff 的 clone 和 unclone
网络·网络协议·tcp/ip
学习溢出4 小时前
【网络安全】理解安全事件的“三分法”流程:应对警报的第一道防线
网络·安全·web安全·网络安全·ids
智慧化智能化数字化方案4 小时前
华为IPD(集成产品开发)流程是其研发管理的核心体系
网络·华为ipd流程·ipd流程体系·ipd产品研发
kfepiza5 小时前
Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
linux·运维·网络·笔记·tcp/ip·ip·tcp
cui_win6 小时前
【网络】Linux 内核优化实战 - net.netfilter.nf_conntrack_buckets
linux·网络·.net
cui_win6 小时前
【网络】Linux 内核优化实战 - net.netfilter.nf_conntrack_tcp_timeout_established
linux·网络·.net