春季数据流:使用吊舱注释向吊舱分配IAM角色

Sim*_*tar 5 annotations dataflow amazon-web-services kubernetes spring-cloud-dataflow

目前,我们正在aws EKS集群中部署新的spring数据流应用程序。作为此过程的一部分,由船长启动的Pod应该具有在注释中定义的IAM角色,以便它们可以访问所需的AWS服务。我已经在AWS账户中创建了所需的iam角色,并尝试使用应用程序的部署流中的pod-annotations属性传递角色,

样本部署属性:

deployer.datastreamdemosource.kubernetes.pod-annotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXXXX:role/spring-dataflow-test-role
Run Code Online (Sandbox Code Playgroud)

船长能够启动集群中的Pod,但是我可以看到请求的注释未分配给Pod模板,

分配给广告连播的注释值为

我是否使用正确的属性来分配所需的IAM角色?或如何将IAM角色分配给船长作为流的一部分启动的Pod?我们不希望对流使用全局IAM角色,因为某些吊舱将具有它们不需要的其他权限。是否有人成功为每个Pod以iam角色在AWS EKS中成功部署了数据流流应用程序?

Sim*_*tar 1

阅读了几个小时的文档后,我在下面的链接中找到了所需的配置

https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_annotations

因此,您需要在 Streams 的部署平台下使用以下属性定义,这将允许船长启动带有所需注释的 Pod。

 deployer.data-stream-demo-source.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXXX:role/spring-dataflow-test-role
 deployer.data-stream-demo-sink.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXX:role/spring-dataflow-test-role
Run Code Online (Sandbox Code Playgroud)

部署流定义中的默认 pod-annotation 属性未按预期工作,不确定是否是由于 pod-annotations 中的拼写错误造成的。

其他注释(作业注释、服务注释)也是如此。

目前,您可以在自由文本选项卡中定义所需的注释定义,也可以在将应用程序注册到数据流服务器时在应用程序属性级别中定义。顺便说一下,我使用的是 spring-cloud-dataflow-server 版本:2.2.1.RELEASE