根据Portworx 在2018年进行的一项调查[1],80%的企业现在正在使用容器,其中83%的企业正在生产环境中使用。而这个数字在2017年只有67%,很明显,容器不仅仅是一种时尚。
但是,随着容器的流行,一些公司开始在Kubernetes内建立有效的流量控制和安全策略。
作为容器调度和集群管理平台,Kubernetes致力于提供出色的基础架构,因此被无数公司采用。它刚刚开源五周年,最近在福布斯发表的一篇名为《Kubernetes “the most popular open source project of our times”[2]》的文章表示,Kubernetes已被Capital One,ING Group,Philips,VMware和华为等公司使用。
对于使用微服务架构(MSA)开发来应用程序的公司来说,Kubernetes具有许多优势,特别是在应用程序部署方面。
出于上面这些原因,研发团队有必要了解Kubernetes独有的流量和安全情况。在本文中,我们将介绍:
Kubernetes是什么。
Kubernetes面临的挑战。
Kubernetes中的七个最重要的流量和安全要求。
关于开发和操作简便性的注意事项。
让我们开始吧。
Kubernetes 是什么
Kubernetes是一个开源的容器编排系统。根据Kubernetes’ own definition,它是一个可移植且可扩展的程序,用于管理容器化的工作负载和服务,并提供以容器为中心的管理环境。
下图描述了Kubernetes的基本工作方式。图中可以看到一个主节点和两个工作节点。主节点用来告诉工作程序节点需要做什么工作,而工作程序节点则执行主节点提供给它们的指令。同时可以添加其他Kubernetes工作节点以扩展基础架构。
如果仔细观察,你会发现在每个部分中都出现了“Docker”一词。Docker 是一个容器平台,非常适合在单个物理机或虚拟机(VM)上运行容器。
但是,如果你要在多个不同的应用程序中使用数百个容器,且不希望将它们全部放在一台计算机上。这就是催生Kubernetes的挑战之一。
使用overlay网络(如上图中的红色条所示),主节点中的容器不必知道它需要与之通信的容器位于哪个节点,就可以直接与之通信。
Kubernetes的另一个主要功能是将信息打包到“Pod”中,如果应用程序由