Kubernetes家族容器小管家Pod在线答疑?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 不知道学习k8s的小伙伴们有没有跟我一样的疑问?k8s为什么不是直接运行容器,而是让Pod介入?Pod又是什么?为什么在应用容器化如此普遍的情况下k8s要推出Pod概念?

Kubernetes家族容器小管家Pod在线答疑❓

不知道学习k8s的小伙伴们有没有跟我一样的疑问?

k8s为什么不是直接运行容器,而是让Pod介入?

Pod又是什么?为什么在应用容器化如此普遍的情况下k8s要推出Pod概念?

img

小葵花Pod课堂开课啦

本文主要理解的一个核心点,什么是Pod?我们先不关注Pod怎么使用,怎么调度,如何实现最佳实践。这些问题后续继续讨论,在不懂为什么k8s要有Pod的情况下,去先深究最佳实践没有实际意义。

囧么肥事-k8s专场

img

img

Pod官方定义

Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。

Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器

这些容器共享存储、网络、以及怎样运行这些容器的声明。

Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。

Pod 所建模的是特定于应用的“逻辑主机”,

其中包含一个或多个应用容器,

这些容器是相对紧密的耦合在一起的。

Linux命名空间、cgroups

*namespace*

Linux namespace 提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的namespace中来实现资源隔离的目的.Linux 中六类系统资源的隔离机制

● Mount: 隔离文件系统挂载点

● UTS: 隔离主机名和域名信息

● IPC: 隔离进程间通讯

● PID: 隔离进程的 ID

● NetWork: 隔离网络资源

● User: 隔离用户和用户组的 ID

cgroups

cgroups 限制一个进程组能够使用的资源上限,包括 CPU,内存,磁盘,网络带宽等,同时可以设置进程优先级,以及将进程挂起和恢复等。

docker 角度理解Pod

Pod 的共享上下文包括一组 Linux 名字空间、控制组(cgroup)和可能一些其他的隔离 方面,即用来隔离 Docker 容器的技术。 在 Pod 的上下文中,每个独立的应用可能会进一步实施隔离。

就 Docker 概念的术语而言,Pod 类似于共享名字空间和文件系统卷的一组 Docker 容器。

Pod 中多个容器如何协调?

Pod 被设计成支持形成内聚服务单元的多个协作过程(形式为容器)。

Pod 中的容器被自动安排到集群中的同一物理机或虚拟机上,并可以一起进行调度

容器之间可以共享资源和依赖、彼此通信、协调何时以及何种方式终止自身

例如,你可能有一个容器,为共享卷中的文件提供 Web 服务器支持,以及一个单独的 “sidecar(挂斗)”容器负责从远端更新这些文件,如下图所示:

img

如何理解Pod共享上下文?

一个Pod的共享上下文是Linux命名空间、cgroups和其它潜在隔离内容的集合。 在Pod中,容器共享一个IP地址和端口空间,它们可以通过localhost发现彼此。

同一个Pod中的容器,可以使用System V 或POSIX信号进行标准的进程间通信和共享内存

不同Pod中的容器,拥有不同的IP地址,因此不能够直接在进程间进行通信。容器间通常使用Pod IP地址进行通信

Pod 的上下文可以理解成多个linux命名空间的联合:

● PID 命名空间(同一个Pod中应用可以看到其它进程)

● 网络 命名空间(同一个Pod的中的应用对相同的IP地址和端口有权限)

● IPC 命名空间(同一个Pod中的应用可以通过VPC或者POSIX进行通信)

● UTS 命名空间(同一个Pod中的应用共享一个主机名称)

img


Kubernetes 推荐学习书

Kubernetes权威指南PDF
链接: https://pan.baidu.com/s/11huLHJkCeIPZqSyLEoUEmQ 提取码:sa88

k8s系列所有问题更新记录:GitHub

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1天前
|
存储 Kubernetes Docker
【赵渝强老师】Kubernetes中Pod的基础容器
Pod 是 Kubernetes 中的基本单位,代表集群上运行的一个进程。它由一个或多个容器组成,包括业务容器、基础容器、初始化容器和临时容器。基础容器负责维护 Pod 的网络空间,对用户透明。文中附有图片和视频讲解,详细介绍了 Pod 的组成结构及其在网络配置中的作用。
【赵渝强老师】Kubernetes中Pod的基础容器
|
1天前
|
运维 Kubernetes Shell
【赵渝强老师】K8s中Pod的临时容器
Pod 是 Kubernetes 中的基本调度单位,由一个或多个容器组成,包括业务容器、基础容器、初始化容器和临时容器。临时容器用于故障排查和性能诊断,不适用于构建应用程序。当 Pod 中的容器异常退出或容器镜像不包含调试工具时,临时容器非常有用。文中通过示例展示了如何使用 `kubectl debug` 命令创建临时容器进行调试。
|
1天前
|
Kubernetes 调度 容器
【赵渝强老师】K8s中Pod中的业务容器
Pod 是 Kubernetes 中的基本调度单元,由一个或多个容器组成。除了业务容器,Pod 还包括基础容器、初始化容器和临时容器。本文通过示例介绍如何创建包含业务容器的 Pod,并提供了一个视频讲解。示例中创建了一个名为 "busybox-container" 的业务容器,并使用 `kubectl create -f firstpod.yaml` 命令部署 Pod。
|
1天前
|
Kubernetes 容器 Perl
【赵渝强老师】K8s中Pod中的初始化容器
Kubernetes的Pod包含业务容器、基础容器、初始化容器和临时容器。初始化容器在业务容器前运行,用于执行必要的初始化任务。本文介绍了初始化容器的作用、配置方法及优势,并提供了一个示例。
|
9天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
5天前
|
关系型数据库 MySQL API
|
21天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
57 5
|
5天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
1天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践

相关产品

  • 容器服务Kubernetes版
  • 下一篇
    无影云桌面