【发布时间】:2023-03-13 06:20:01
【问题描述】:
简单的问题,但我还没有找到任何明确的答案... Docker 网络的概念,单主机还是多主机,与 Kubernetes 的命名空间概念是一样的吗?
【问题讨论】:
标签: docker networking kubernetes docker-swarm
简单的问题,但我还没有找到任何明确的答案... Docker 网络的概念,单主机还是多主机,与 Kubernetes 的命名空间概念是一样的吗?
【问题讨论】:
标签: docker networking kubernetes docker-swarm
据我了解
命名空间:命名空间是可以位于同一个 k8s 集群之上的虚拟集群。命名空间的目的是在团队及其环境之间提供逻辑分离。例如,如果有多个 pod 的多层应用程序,那么它有助于使用相同命名空间的 pod 到 pod 通信。现在通过另一个命名空间,相同的多层应用程序可以部署在同一个 k8s 集群上而不会受到干扰或矛盾。因此,它提供了逻辑隔离。
Docker 网络:它回答了 2 个或多个容器如何在同一主机上相互通信。
由于 Kubernetes 提供了多种网络解决方案。例如 flannel、calico,它们有不同的用途。
我附上了一个链接,供进一步研究比较。
networking-solutions-for-kubernetes
Kubernetes 处理网络的方式与默认情况下的 Docker 有所不同。有 4 个不同的网络问题需要解决。
【讨论】:
它们非常不同。
docker network 是一个常规网络,它在容器之间传输数据包并被容器用来与主机通信(通过 docker0 桥和 veth 对)。
kubernetes namespace 是一种在多个用户之间隔离/划分/分离集群资源并提供名称范围的逻辑方式。
【讨论】:
Kubernetes 命名空间只是为了让用户轻松管理他们的工作负载。例如,您可以在两个命名空间中有两个名称完全相同的服务,但有两个不同的内部 DNS 名称(kubernetes 将命名空间添加为 dns 名称的一部分)。此外,对于多租户,您可以使用 RBAC 分隔每个租户以供其访问。
然而docker网络只是一种网络模式,容器如何与其他人通信,kubernetes使用docker网络的容器网络模式。
【讨论】: