3

Kubernetes 命名空间到底是什么,它与 linux 命名空间(mnt、pid、net、ipc、uts、user、cgroup)有何不同?

4

2 回答 2

8

与 linux 命名空间没有关系。Kubernetes 命名空间是在多个用户之间隔离集群资源(如 pod、secrets)的逻辑构造。您可以使用角色和角色绑定来应用 RBAC,它定义了谁可以在哪个命名空间中执行什么操作。这就是使用命名空间实现隔离的方式。在内部,集群资源存储在 ETCD(键值存储)中,kubernetes API 服务器允许或拒绝用户根据 RBAC 策略中定义的内容对集群资源执行 CRUD 操作的请求。有趣的是,如果你能以某种方式访问​​ ETCD,那么你就可以在所有命名空间中做任何事情。所以控制在 Kubernetes API Server 层。

于 2020-05-06T06:18:18.627 回答
0

我会说 kubernetes 命名空间是建立在 linux 命名空间之上的,并添加了更多的含义(功能)。就像 Arghya 的回答中提到的那样,kubernetes 也为 RBAC 使用命名空间。但是在 Linux 上安装 kubenetes 时,使用 linux 命名空间来分隔资源。Kubernetes 也支持 Windows,它必须在 Windows 上使用其他东西。

总之,Kubernetes 命名空间是一个高级概念,Linux 命名空间有点低级。Kubernetes 使用 Linux 命名空间,但也可以支持其他实现。

参考:

https://cloud.redhat.com/blog/kubernetes-namespaces-demystified-how-to-make-the-most-of-them https://kubernetes.io/docs/tasks/tools/install-kubectl-windows /

于 2022-01-25T19:13:25.783 回答