简介
在前面的文章中,对SpringCloud在亚马逊云科技上的混合部署架构已经进行了讨论,并完成了Eureka及APIGateway的部署。在本文中,我们将讨论在亚马逊云科技托管的Kubernetes服务EKS上部署SpringCloud的实际业务功能模块。
架构回顾
EKS为SpringCloud部署带来的好处
EKS的特点
AmazonElasticKubernetesService(AmazonEKS)是一项完全托管的Kubernetes服务。由于EKS把安全性、可靠性和可扩展性作为产品最重要的特性进行实现,在公有云上使用Kubernetes技术的多数大型客户,都使用EKS运行他们最敏感的任务关键型应用程序。
同时,EKS与诸如AmazonCloudWatch、AutoScalingGroup、AmazonIdentityandAccessManagement(IAM)和AmazonVirtualPrivateCloud(VPC)之类的服务深度集成,为客户带来监控、扩展和负载平衡应用程序的无缝体验。
最后,EKS经认证与Kubernetes一致,因此客户可以利用社区中开源工具的所有优势。任何标准Kubernetes应用程序可轻松地迁移到EKS,而无需重构代码。
EKS托管架构
??想学习AmazonEKS更多前沿实例?来亚马逊云科技中国峰会与业内领先的技术践行者们一起探讨交流吧!点击图片报名吧~
AmazonVPCCNI插件
在Kubernetes的网络模型中,要求所有的网络插件实现必须满足如下要求:
1.所有的Pod可以与任何其他Pod直接通信,无需使用NAT映射(networkaddresstranslation)
2.所有节点可以与所有Pod直接通信,无需使用NAT映射
3.Pod内部获取到的IP地址与其他Pod或节点与其通信时的IP地址是同一个
AmazonVPCCNI插件的实现方式是使Kubernetes的Pod获取VPC的私有IP地址。此实现方式不但完全满足Kubernetes网络模型的要求;不使用overlay网络可以使Pod的通信效率和在物理网络中相当;同时由于Pod持有的是和EC2相同的VPC私有IP,因此Pod与EC2的网络地位一致,可以直接通信。这些特性使得用SpringCloud框架开发的业务模块部署于EKScluster中,与部署在EC2中的Eureka、APIGateway进行交互时,不会遇到困难,同时还保持了通信的最高效率。
在EKSCluster中部署SpringCloud的业务模块
前置条件
CreateaWorkspace
CreateanSSHkey
InstallKubernetesTools
CreateanIAMroleforyourWorkspace
AttachtheIAMroletoyourWorkspace
UpdateIAMsettingsforyourWorkspace
Installeksctl
Note:前置条件过程请参考AmazonEKS官方:
workshop: