我们目前正在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
船长能够启动集群中的容器,但是我看到请求的注释未分配给容器模板,
分配给窗格的注释值为
我是否使用正确的属性来分配所需的IAM角色?或如何将IAM角色分配给船长作为流的一部分启动的Pod?我们不希望对流使用全局IAM角色,因为某些吊舱将具有它们不需要的其他权限。是否有人成功为每个Pod以iam角色在AWS EKS中成功部署了数据流流应用程序?
阅读文档数小时后,我在下面的链接中找到了所需的配置
https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_annotations
因此,您需要在Streams中的部署平台下使用以下属性定义,这将允许船长启动带有必需注释的吊舱。
deployer.product-data-stream-demo-source.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXXX:role/spring-dataflow-sandbox-test-role
deployer.product-data-stream-demo-sink.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXX:role/spring-dataflow-sandbox-test-role
部署流定义中的默认pod-annotation属性未按预期运行,并且不确定是否是因为pod-annotation中有错字。
与其他注释(作业注释,服务注释)也一样。
目前,您可以在自由文本选项卡中定义所需的注释定义,也可以在将应用程序注册到数据流服务器时在应用程序属性级别进行定义。顺便说一句,我正在使用spring-cloud-dataflow-server版本:2.2.1.RELEASE