技术博客

Kubernetes中POD垂直伸缩与应用

  • 2024.05.28

随着企业IT架构的演进,微服务作为一种架构风格,已被广泛接纳。相较于传统的单体架构,微服务架构提供了更高的灵活性和可扩展性,使得管理和部署服务更加高效。在这种背景下,亚马逊云科技的AWS EKS 作为一种托管Kubernetes服务,提供了简化的集群管理和维护。而 APISIX 作为一个高性能的 API网关,为微服务架构提供了流量管理、监控和安全等丰富的功能。

Amazon Elastic Kubernetes Service (Amazon EKS) 是亚马逊云科技提供的托管k8s集群服务,无需安装、操作或维护控制层面或节点,即可轻松运行、部署服务。

利用EKS和APISIX的优势,我们可以构建一个高效、稳定且易于管理的微服务架构。在这个架构中,APISIX 作为入口网关运行在 EKS 集群中。通过定义路由规则,APISIX 可以将来自客户端的请求转发到正确的服务。同时,APISIX 的丰富插件可以用于实现身份验证、限速、灰度发布等高级功能。

微服务架构示意图

全面了解 APISIX

APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。

APISIX软件架构

核心功能

API Gateway

负责处理通过 API 网关的所有实时流量,管理和控制进入微服务的所有请求。其主要功能包括路由请求、负载均衡、认证和授权、限流和熔断、数据转换、日志记录和监控、缓存等。

APISIX Dashboard

Apache APISIX Dashboard 是一个可视化的控制面板,提供了一个友好的用户界面,用于管理和配置 APISIX 的各种功能。通过这个控制面板,用户可以轻松地创建和修改路由,管理上游服务,启用和配置插件等。

Plugins

插件是 APISIX 的一个重要组成部分,允许用户扩展和定制 API 网关的功能。APISIX 提供了丰富的插件,如身份验证、限流、日志记录、健康检查、灰度发布等。用户还可以开发自己的插件,以满足特定的需求。

ETCD

APISIX 使用 etcd 作为其配置存储和分布式协调系统。所有的配置更改都被保存在 etcd 中,可以被集群中的所有 APISIX 实例实时读取和应用。etcd 的使用确保了 APISIX 的高可用性和一致性。

EKS与APISIX微服务实践指南

部署前的准备工作

在部署之前,需要在AWS上选择合适的EC2实例来部署ETCD集群。这里的注意点是,为了保证数据的持久性和稳定性,建议不要将ETCD集群直接部署在EKS上,以避免可能因Pod重建导致的数据丢失。ETCD集群的节点数量通常为奇数(如3、5、7等),以保证集群的高可用性。