Spring Cloud Gateway(简称SCG)开源项目已经扩展到Kubernetes平台,通过此新产品,您可以通过将YAML配置对象应用于Kubernetes集群来自动执行API网关服务的部署。您还可以通过将YAML配置应用于集群来更新Kubernetes中API网关的路由。
只要提供HTTP端点,用于Kubernetes的Spring Cloud Gateway都支持路由到以任何语言编写的服务。通过将定义的自定义资源应用于集群,提供了Kubernetes运算符来处理创建和配置网关实例。
您可以在Kubernetes平台中动态配置衍生的SCG实例,以为连续集成(CI)和连续交付(CD)管道启用API路由更新。
此外,用于Kubernetes的SCG还提供用于单点登录(SSO)身份验证,基于角色的访问控制,范围授权,授权令牌中继,客户端证书授权,速率限制和断路器的商业API路由过滤器。Kubernetes平台中的SCG实例以高可用性和可调整的内存和vCPU资源消耗设置运行。
用于Kubernetes的Spring Cloud Gateway易于安装和使用。在这个博客中。我将展示如何在本地开发环境中为Kubernetes安装SCG,并展示如何使用路由创建和配置网关实例。您需要同时安装Docker和Helm命令行界面(CLI)工具。
首先让我们通过使用本地Kubernetes集群设置环境来开始。使用本地Docker注册表和入口控制器配置集群也将很有帮助。我们可以使用KinD创建本地集群。您可以从此处安装KinD 。
准备好本地集群环境
使用Docker的注册5000端口:
$ Docker run -d –restart=always -p “127.0.0.1:5000” –name myregistry registry:2 |
可以使用下面的命令创建一个名为mycluster的新KinD群集。集群由两个节点组成,一个作为控制平面control-plane节点,另一个作为工作负载worker节点,端口80和443映射到您的主机以进入集群。群集配置为使用上述本地Docker注册表。
$ cat <<EOF | kind create cluster --config=- |
需要使用以下命令将注册表连接到群集网络:
$ docker network connect mycluster myregistry || true |
另外,您需要创建一个Kubernetes ConfigMap来配置集群中的本地注册表:
$ cat <<EOF | kubectl apply -f - |
这样,您就应该准备好本地开发环境并使用一个小型集群。
[b]部署SCG[/b] |
现在我们可以研究如何为Kubernetes部署SCG。如果您具有许可证和访问权限,则可以从VMware Tanzu Network下载适用于Kubernetes的SCG安装程序。我们将下载安装程序的当前版本(1.0.0)并将其解压缩到文件夹中。您需要首先将用于Kubernetes Docker映像的Spring Cloud Gateway分配给我们在端口5000上的localhost中安装的docker注册表。从解压缩的文件夹中,运行目录中的映像重定位脚本scripts。此命令将Docker image拉出,标记并推入Docker注册表中:
$ ./scripts/relocate-images.sh localhost:5000 |
通过运行以下脚本来完成安装。
$ ./scripts/ install-spring-cloud-gateway.sh
默认情况下,在spring-cloud-gateway名称空间中的SCG运营商和支持的应用程序都将被部署。
现在,您可以在集群中创建网关实例。
有三个实例:使用SpringCloudGateway CRD生成新的SCG实例;使用 SpringCloudGatewayRouteConfigCRD定义新的路由和SpringCloudGatewayMappingCRD配置的路由网关。
更详细点击标题。