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

时间:2019-10-23 13:21:42

标签: amazon-web-services kubernetes annotations spring-cloud-dataflow 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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

因此,您需要在Streams中的部署平台下使用以下属性定义,这将使船长可以使用必需的注释启动容器。

 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

部署流定义中的默认pod-annotation属性未按预期工作,并且不确定是否是由于pod-annotation中的错字。

与其他注释(作业注释,服务注释)的情况相同。

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

答案 1 :(得分:0)

您尝试作为部署属性的内容确实有错字。要在每个流应用级别上覆盖podAnnotations,对于流定义中的每个所需应用,都应将其用作deployer.<app-name>.kubernetes.podAnnotations

SCDF的K8s-deployer特别希望该格式的属性,这就是为什么在已部署的应用程序上无法正确解析和注释该属性的原因。但是,如果您使用的是UI,我们会尝试在对话框窗口中自动为您列出所有部署程序属性,因此期望所有这些值。

最近,关于volumeMounts的讨论与SCDF的Gitter channel相同。该频道中讨论的背景可能会有用。