Kubernetes 网络图解指南,处理实际问题
发布时间:2022-01-14 11:04:28 所属栏目:Linux 来源:互联网
导读:如果大家已经使用了 kubernetes技术,并运行了一些测试或生产的服务,可能已经能体会到 K8s 技术带来的革命性变化,如果还没有用过的小伙伴,我建议尽快入坑,毕竟这是技术趋势。 目前尽管已经有很多工具可以用来设置和管理集群,但我们仍然需要知道在k8s底
如果大家已经使用了 kubernetes技术,并运行了一些测试或生产的服务,可能已经能体会到 K8s 技术带来的革命性变化,如果还没有用过的小伙伴,我建议尽快入坑,毕竟这是技术趋势。 目前尽管已经有很多工具可以用来设置和管理集群,但我们仍然需要知道在k8s底层发生了什么,尤其在碰到问题时,只有知道到底层原理才有可能从某个现象去分析到底是哪里出了问题,才能去解决实际问题。 从技术上说 Kubernetes 其实在底层它是非常复杂的,它有很多组件,因此,必须了解它们如何相互配合并协同工作,才能实际去理解实际中的问题,那说到这里,不得不说K8s的网络是最复杂且最关键之一。因此,这篇我们通过图文来深入理解 Kubernetes 中的网络如何工作。 Kubernetes Networking 的核心是一种重要的基本设计理念:每个Pod都有唯一的IP。此 Pod IP 由该Pod中的所有容器共享,并且可以与所有其他Pod路由。你是否曾经注意到Kubernetes节点上运行着一些“暂停”容器?它们被称为“沙盒容器”,其唯一的工作就是保留和保存由Pod中的所有容器共享的网络名称空间(netns)。这样,即使容器死亡,并且在其位置创建了一个新容器,容器IP也不会改变。这种按单机IP模式的巨大好处是与基础主机之间没有IP或端口冲突。而且,我们不必担心应用程序使用哪个端口。 有了这个,Kubernetes 唯一的要求就是,这些Pod IP可以从其他所有Pod进行路由/访问,而不管它们位于哪个节点上。 第一步是确保同一节点上的Pod能够互相通信。然后将该思想扩展到跨节点,到Internet等的通信。在每个Kubernetes节点(在本例中为Linux机器)上,都有一个根网络名称空间(根为基础,而不是超级用户)-root netns。 (编辑:江门站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |