集群中命名空间的物理表示形式是什么(我使用的是AWS),它是EC2服务器吗?
有人可以通过比喻什么是物理表示来帮助我理解:
- 簇
- Namespace
- 豆荚
- 器皿
为了这个问题,让我们namespace
视为 linux 文件系统,忽略挂载目录的事实:
/srv => namespace-1
/var => namespace-2
/mnt => namespace-3
/bin => namespace-4
- 所有这 4 个目录都属于同一个
/
- 在目录中,您可以拥有不同类型的文件
- 如果这样做
ls /srv
则不会看到/var
中的文件 - 不同的用户可以对每个目录具有不同类型的权限
现在让我们从 k8s 命名空间的角度应用 4 点以上
- 所有这 4
namespaces
都属于同一个 kubernetes 集群 - 在
namespace
内部,你可以拥有不同类型的 kubernetes 对象 - 如果从
namespace-1
执行kubectl get deployments
,则不会在namespace-2
中看到部署 - 不同的
users
可以在每个namespaces
上具有不同类型的授权
简短的回答是 - 没有命名空间的物理表示。
namespace
是一种高级抽象,它对 Kubernetes 资源进行逻辑分组和管理(例如,按环境开发/暂存/生产类型)。这有助于分隔资源,就像一个命名空间中的资源无法访问其他命名空间中的资源一样。
cluster
是一组计算机。
container
表示在其中一个群集节点中运行的真实 docker 容器。您可以假设虚拟映像在物理机内运行。
pod
表示从单个部署资源(Deployment
、ReplicaSet
等)部署的一组容器(通常为 1 个容器,但在 sidecar 部署的情况下可以更多)。