运行容器:Kubernetes 中的容器与 Pod 详解
1. 容器与 Pod 概述
在 Kubernetes 中,Pod 是调度的基本单位。一个 Pod 对象代表一个容器或一组容器,Kubernetes 中的所有应用都是通过 Pod 来运行的。Pod 表示在同一执行环境中运行的一组应用容器和卷,它是 Kubernetes 集群中最小的可部署单元,这意味着一个 Pod 中的所有容器总是会被调度到同一台机器上。
在简单的应用场景中,一个 Pod 可能只包含一个容器;但在复杂的应用中,一个 Pod 很可能会包含两个或更多的容器。那么,什么时候以及为什么要将容器组合在一个 Pod 中呢?这需要先了解容器的本质。
2. 什么是容器
容器是一个标准化的软件包,它包含了软件及其依赖项、配置、数据等运行所需的一切。从操作系统的角度来看,容器代表一个或一组隔离的进程,这些进程存在于自己的命名空间中。容器内的进程无法看到容器外的进程,反之亦然,而且容器也不能访问其他容器或容器外进程的资源。容器的边界就像一个围栏,防止进程随意占用其他进程的资源。
可以通过以下命令在容器内运行一些命令来验证这一点:
kubectl run busybox --image busybox:1.28 --rm -it --restart=Never /bin/sh
在容器内执行 ps ax 命令,通常情况下, ps ax 会列出机器上运行的所有进程,但在容器内,它只显示容器内实际运行的进程:
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



