0

我的意思是,我有一个已经 dockerized 的应用程序,我可以提供一个 cloudformation 模板来将它部署到我客户端的 EKS 集群上吗?

4

3 回答 3

0

我使用 Cloudformation 已经有一段时间了,但是我从来没有用它来部署 Kubernetes 工件(而且我迄今为止从未听说过其他任何人)。我认为有办法做到这一点(请参阅AWS 博客),但即使是这个解决方案似乎也是基于 Helm。

我绝对会推荐在您的用例中使用 Helm 图表。Helm 图表直观且易于使用,尤其是在您已经知道要部署的 Kubernetes 对象的情况下。

于 2020-05-22T22:21:55.740 回答
0

使用模块化和可扩展的 Amazon EKS 架构快速入门部署 Amazon EKS 集群。部署 Amazon EKS 集群后,在输出选项卡上,记下以下输出。

  • HelmLambdaArn
  • KubeClusterName
  • KubeConfigPath
  • KubeGetLambdaArn

下面的模板安装WordPress Helm 图表,就像您登录到 Kubernetes 集群并运行以下命令一样。

掌舵安装稳定/wordpress

模板的以下部分展示了如何使用 Helm 来部署 WordPress。它还会创建一个负载均衡器主机名,以便您可以访问 WordPress 站点。

Resources:
  HelmExample:
    Type: "Custom::Helm"
    Version: '1.0'
    Description: 'This deploys the Helm Chart to deploy wordpress in to the EKS Cluster.'
    Properties:
      ServiceToken: !Ref HelmLambdaArn
      KubeConfigPath: !Ref KubeConfigPath
      KubeConfigKmsContext: !Ref KubeConfigKmsContext
      KubeClusterName: !Ref KubeClusterName
      Namespace: !Ref Namespace
      Chart: stable/wordpress
      Name: !Ref Name
      Values:
        wordpressUsername: !Ref wordpressUsername
        wordpressPassword: !Ref wordpressPassword
  WPElbHostName:
    DependsOn: HelmExample
    Type: "Custom::KubeGet"
    Version: '1.0'
    Properties:
     ServiceToken: !Ref KubeGetLambdaArn
     KubeConfigPath: !Ref KubeConfigPath
     KubeConfigKmsContext: !Ref KubeConfigKmsContext
     Namespace: !Ref Namespace
     Name: !Sub 'service/${Name}-wordpress'
     JsonPath: '{.status.loadBalancer.ingress[0].hostname}'

修改 helm 图表以适合您的应用程序,并使用您之前从输出中获得的值修改 cloudformation 模板。这些是部署 cloudformation 模板时必须填写的参数:

  • HelmLambdaArn
  • KubeClusterName
  • KubeConfigPath
  • KubeGetLambdaArn
  • 命名空间
  • 姓名
于 2020-05-26T14:31:40.217 回答
0

您可以使用 cdk8s.io。这里有一些例子:https ://github.com/awslabs/cdk8s/tree/master/examples

于 2020-05-27T06:03:33.120 回答