摘要
本文为使用Amazon Elastic Kubernetes Service (EKS)部署和管理业务流程自动化(BPA)应用提供了综合指南。它概述了前提条件,强调了利用EKS的优势,并提供了设置EKS集群、Amazon RDS数据库和MongoDB Atlas的分步说明。此外,本文还深入探讨了部署架构并明确了环境要求,为旨在将EKS用于其容器化BPA应用的组织提供了全面的资源。
关键字
Amazon EKS、Kubernetes、AWS、RDS、MongoDB Atlas、DevOps、云计算、业务流程自动化。
简介
BPA
在当今的数字时代,企业寻求简化和自动化各种IT环境中的复杂业务流程。业务流程自动化(BPA)已成为一项关键技术,使组织能够提高运营效率、减少错误并改进服务交付。BPA引入了多项关键创新和增强功能,旨在推进工作流程自动化、服务调配和现成自动化应用。
BPA平台托管业务和IT/运营使用案例和应用,例如操作系统升级、服务调配以及与协调引擎的集成。客户可以获得服务生命周期和BPA功能,包括通过思科专家提供的咨询、实施、关键业务服务和解决方案支持、最佳实践,以及有助于自动化业务流程和降低系统风险的经验证的技术和方法。
这些生命周期功能可以基于订用,也可以根据个人需求进行定制。实施服务有助于定义、集成和部署工具和流程,从而加速自动化。思科专家会执行收集需求的正式流程,基于灵活的流程和持续集成与持续交付(CICD)工具设计和开发用户案例,并通过自动测试新的或现有的工作流程、设备和服务来实施灵活的服务。借助解决方案支持,客户可获得全天候的集中式支持(专注于以软件为中心的问题),以及通过思科分层软件模型提供的多供应商和开源支持。思科解决方案支持专家帮助管理您的问题,从首次致电到最终解决,并充当同时与多个供应商进行沟通的主要联系人。与解决方案级专家合作,您可以减少多达44%的问题,从而帮助您保持业务连续性并更快实现BPA投资回报。
关键的技术功能,例如支持FMC和Ansible管理的设备、使用高级排队框架(AQF)的并行执行,以及NDFC和FMC设备的扩展配置合规性,将BPA定位为大规模企业自动化的全面解决方案。该版本增加了在SD-WAN管理、设备自注册和防火墙策略监管方面的功能,解决了网络安全和自动化的关键方面,满足了大规模、多供应商环境的需求。
EKS
Amazon Elastic Kubernetes Service (EKS)是由Amazon Web Services (AWS)提供的完全托管的Kubernetes服务。EKS于2018年推出,它使用开源容器协调平台Kubernetes简化容器化应用的部署、管理和扩展流程。EKS将Kubernetes群集管理的复杂性抽象化,使开发人员能够专注于构建和运行应用程序,而无需处理底层基础设施。
使用Amazon EKS进行应用程序部署的优势
Amazon EKS提供多种应用程序部署优势,使其成为利用容器化应用程序和微服务的组织的热门选择。
主要优势包括:
-
托管Kubernetes控制平面:EKS处理Kubernetes控制平面的部署、扩展和维护,减少运营负担。
-
简化的集群管理:EKS将设置和管理Kubernetes集群的复杂性抽象化。
-
可扩展性:EKS允许轻松扩展集群,以适应不断增长的工作负载。
-
高可用性:EKS支持多可用性区域部署,从而增强可用性和容错能力。
-
与AWS服务集成:EKS与各种AWS服务无缝集成。
- DevOps自动化:EKS支持容器化应用的持续集成和持续部署(CI/CD)。
BPA部署架构
此图像表示在AWS上部署的基于云的基础设施的高级架构,使用几个关键组件。下面是图表的细分:
- Amazon EKS (Elastic Kubernetes Service):在图示的核心,Amazon EKS跨三个可用区域(AZ1、AZ2、AZ3)部署,每个区域内有Kubernetes工作节点。这表示高可用性和容错设置,因为工作负载分布在多个可用性区域。
-
ALB(应用负载均衡器):此模块位于前端,从用户接收流量并将其分配到EKS集群以处理应用工作负载。负载均衡器可确保均匀分配请求,并可处理基于流量需求的扩展。
-
Amazon RDS (Relational Database Service) - PostgreSQL:在图表的右侧,存在运行PostgreSQL的Amazon RDS实例。在EKS群集中运行的应用程序可以访问此数据库。
-
ECR(Elastic Container Registry):这是Docker容器映像的存储和管理位置,然后将其部署到Amazon EKS以运行工作负载。
-
MongoDB Atlas:在左侧,MongoDB Atlas通过专用终端集成到架构中。MongoDB Atlas是云托管的NoSQL数据库服务,在此处用于处理基于文档的数据库要求。专用终端可确保MongoDB Atlas实例与其他AWS组件之间的安全专用通信。
-
Bastion Host:位于VPC(虚拟私有云)内,可为管理员提供安全的入口点以访问VPC内的资源,而无需直接将其暴露于互联网。
总体而言,此架构为使用Amazon EKS部署和管理容器化应用提供了高度可用、可扩展且安全的解决方案,同时支持关系(PostgreSQL)和NoSQL (MongoDB)数据库。
ECR作为映像注册表
创建Amazon ECR存储库并将Docker映像推入其中涉及几个步骤。以下是使用AWS CLI创建ECR存储库、标记Docker映像并将其推送到存储库的步骤。
aws ecr create-repository --repository-name your-image-name --region your-region
替换:
配置EKS节点的IAM角色
确保EKS工作节点(EC2实例)具有附加从ECR提取映像的权限的必要IAM角色。所需的IAM策略为:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"Resource": "*"
}
]
}
将此策略附加到与您的EKS工作节点相关联的IAM角色。
BPA部署
BPA的部署涉及几个步骤,包括标记EKS工作节点,在节点上准备目录,复制BPA软件包,以及使用Helm部署BPA。
在客户部署方面,我们使用了以下版本的软件和云服务:
- BPA:4.0.3-6
- RDS(关系数据库服务):16.3-R2
- MongoDB Atlas: v5.0.29
- EKS(Elastic Kubernetes服务):v1.27
这些组件可确保我们的部署稳健、可扩展且能够高效地处理所需的工作负载。
- 标记EKS工作节点
kubectl label node
name=node-1 kubectl label node
name=node-2 kubectl label node
name=node-3 kubectl label node
name=node-4
- 准备节点上的目录
节点 1:
rm -rf /opt/bpa/data/
mkdir -p /opt/bpa/data/zookeeper1
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/zookeeper1
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
mkdir -p /opt/bpa/data/kafka1
chmod 777 /opt/bpa/data/kafka1
sysctl -w vm.max_map_count=262144
节点 2:
rm -rf /opt/bpa/data
sysctl -w vm.max_map_count=262144
mkdir -p /opt/bpa/data/kafka2
mkdir -p /opt/bpa/data/zookeeper2
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/kafka2
chmod 777 /opt/bpa/data/zookeeper2
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
节点 3:
rm -rf /opt/bpa/data
sysctl -w vm.max_map_count=262144
mkdir -p /opt/bpa/data/kafka3
mkdir -p /opt/bpa/data/zookeeper3
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/kafka3
chmod 777 /opt/bpa/data/zookeeper3
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
节点 4:
mkdir -p /opt/bpa/data/elk
mkdir -p /opt/bpa/data/metrices/prometheus
mkdir -p /opt/bpa/data/metrices/grafana
chmod 777 /opt/bpa/data/metrices
chmod 777 /opt/bpa/data/metrices/prometheus
chmod 777 /opt/bpa/data/metrices/grafana
sysctl -w vm.max_map_count=262144
- 复制BPA包
scp -r packages to node1:/opt/bpa/
scp -r packages to node2:/opt/bpa/
scp -r packages to node3:/opt/bpa/
scp -r packages to node4:/opt/bpa/
- 使用Helm部署BPA
helm install bpa-rel --create-namespace --namespace bpa-ns /opt/EKS/bpa-helm-chart
入口设置
- 启用入口
更新值。
yamlto启用入口:
ingress_controller: {create: true}
- 使用BPA证书创建密钥
导航到证书目录并创建密钥:
cd /opt/bpa/
/bpa/conf/common/certs/ kubectl create secret tls bpa-certificate-ingress --cert=bap-cert.pem --key=bap-key.pem -n bpa-ns
- 更新入口控制器
将新创建的密钥添加到 ingress-controller.yaml
文件:
cd /opt/bpa/
/templates/ vi ingress-controller.yaml "- --default-ssl-certificate=$(POD_NAMESPACE)/bpa-certificate-ingress"
- 更新入口证书
执行Helm删除和安装以更新入口证书。
环境规格
环境规范包括EC2实例、负载均衡器、VPC终端和RDS实例的要求。主要规格包括:
EC2要求:
存储要求:每个节点2TB的空间。将EBS卷装入/opt并在/etc/fstab中添加所有节点的条目。
Security group inbound:30101、443、0 - 65535 TCP、22 for ssh。
Security group outbound:必须启用所有流量。
DNS解析器:EC2必须在/etc/resolve.conf中具有内部解析器。
负载均衡器要求:
- 侦听程序端口必须是443、30101。
- VPC终端要求(Atlas MongoDB)。
- 为Atlas连接创建的VPC终端在父帐户(aws-5g-ndc-prod)中可用。VPC终端必须具有允许所有入站访问的安全组(0 - 65535)。
RDS要求:
RDS类型:db.r5b.2xlarge
Postgres引擎版本:13.7
安全组:入站必须允许来自POD CIDR源的流量。
关键概念和组件
了解Kubernetes基础知识对于使用Amazon EKS有效部署和管理应用至关重要。
结论
本文为使用Amazon EKS部署和管理业务流程自动化(BPA)应用程序提供了详细的指南。通过遵循概述的步骤并了解关键概念,组织可以将EKS的优势用于其容器化BPA应用。
参考