注意:如果您已经知道Kubernetes的工作原理,那么您可能会对我之前的博文感兴趣,请停止使用具有管理员权限的kubeconfig
Kubernetes是最初由Google设计的开源工具,现在由 Cloud Native Computing Foundation(CNCF)维护。Kubernetes组合了一堆虚拟机或物理机,并将它们转换为统一的API表面。API,它表示为基于JSON的API,开发人员可以通过该API与容器进行交互并编排其应用程序,对其进行扩展,而无需了解下面的机器。
Kubernetes定义了一组构建块(API端点)。一些核心是:
Pod是在同一台机器上共同放置的容器的集合。
服务是一种负载均衡器,可以将流量向下路由到Pod集合。
在幕后进行的部署使用一个副本集,该副本集用于多次复制容器以提高可用性或规模。
除此之外,还有许多其他物件,例如
卷数
命名空间
Configmap和秘密
有状态集
守护程序集
入口
和别的…
所有这些共同协作,以提供基于CPU,内存,标签,公差和其他自定义指标来部署,维护和扩展应用程序的机制。
Pod组合了一个或多个要部署在同一台机器中的容器。我们可以使用Pod清单直接创建Pod对象,也可以使用部署清单创建Pod。
部署运行相同Pod的多个副本,部署确保它始终与部署清单中提到的副本数量匹配,并且还自动替换任何失败或无响应的实例。
在Kubernetes中,服务是一种抽象,定义了Pod的逻辑集合。简单来说,它是一个负载平衡器。用户或其他应用程序可以使用Service对象与Pod对话。
我们可以在AWS中使用外部负载均衡器,例如ELB,NLB或ALB,在Google Cloud中使用Cloud Load Balancer或任何其他负载均衡器。用户可以使用外部负载平衡器连接应用程序。