Kubernetes 容器网络演进之路
|
Docker 提供的是应用级的主机抽象,那么 Kubernetes 的作用就是应用级的集群抽象,提供容器集群运行所需的基础设施,旨在解决容器化应用的资源调度、部署运行、服务发现、扩容缩容等问题。 一直以来,容器网络设计都被认为是非常重要,但相对复杂的部分。 本文要介绍的 Kubernetes 网络,目前主要为马蜂窝旅游网大多数 Java 业务提供开发环境的底层基础设施。随着团队的调整及业务需求升级,整个系统对网络架构的要求也越来越严苛。基于这样的背景,Kubernetes 网络过去一年多经历了两次比较重要的改造,以期不断降低运维调试成本,提高研发效率。 借由本文分享我们的实践经验,与君共勉。 Part.1.K8S 网络原理及挑战 1. Kubernetes Pod 设计 Pod 是 Kubernetes 的基本调度单元,我们可以将 Pod 认为是容器的一种延伸扩展,一个 Pod 也是一个隔离体,而 Pod 内部又包含一组共享的容器。 每个 Pod 中的容器由一个特殊的 Pause 容器,及一个或多个紧密相关的业务容器组成。Pause 容器是 Pod 的根容器,对应的镜像属于 Kubernetes 平台的一部分,以它的状态代表整个容器组的状态。同一个 Pod 里的容器之间仅需通过 localhost 就能互相通信。
每个 Pod 会被 Kubernetes 网络组件分配一个唯一的(在集群内的 IP 地址,称为 Pod IP,这样就允许不同 Pod 中的服务可以使用同一端口(同一个 P (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


