Kubernetes服务与节点特性选择全解析
1. Kubernetes服务概述
Kubernetes提供了多种工具,用于创建、发现、连接和暴露多个服务,以满足超出单个容器承载能力的需求。具体如下:
- 内部服务 :是连接各种工作负载的一种方式,这些工作负载可以用不同的语言编写,有不同的发布计划,或者只需独立扩展。内部服务可以通过私有集群IP暴露,从而允许集群中的其他服务调用。
- 服务发现 :Kubernetes提供了两种服务发现形式来查找这些内部服务IP,分别是环境变量和DNS。
- Ingress :可用于使用单个IP将多个内部服务暴露到互联网,通过路径和/或主机名进行路由。Ingress是一种“L7”HTTP负载均衡器,还可以处理HTTPS连接和TLS终止。在负载均衡器层执行TLS终止,可以节省应用程序的配置工作并减少CPU开销。
2. 节点特性选择的重要性
在云计算环境中,即使使用的是能处理大部分底层计算资源调配的抽象平台,我们有时仍会关注实际运行工作负载的服务器。不同的计算节点具有不同的硬件和操作属性,例如CPU架构(x86或Arm)、是否配备GPU等。选择合适的节点特性可以带来诸多好处,如使用“Spot”模式降低成本,或为机器学习推理工作负载提供GPU支持。
3. 节点特性选择方法
3.1 节点选择器(Node Selectors)
在Kubernetes中,节点特性通过节点标签来区分。我们可以使用节点选择器或节点亲和性来指定Pod所需节点的标签(即特性