如何通过Jenkins在EKS中部署kubernetes应用

how to deploy kubernetes application in EKS through Jenkins

我正在尝试通过 Jenkins 在 AWS EKS 中部署 Kubernetes 应用程序。

我看了几个博客,他们提到了Jenkins X。但是JenkinsX需要单独配置。但是根据说明,我们需要使用现有的 Jenkins 来部署 K8S 应用程序。

注意:AWS EKS 和 Jenkins 是独立的机器(我们使用现有的 Jenkins)。我可能需要根据要求创建新的 EKS 环境。

请建议是否有可用于部署的 Jenkins 的 AWS EKS 插件

其他

有什么方法可以创建自定义Bash脚本(自动化脚本)以在 AWS EKS 中部署 K8S 应用程序

我的研究是:实际上 AWS 仅提供 api/sdk 对 Creating/Managing 集群的支持,而不是在 k8s 环境中部署应用程序(使用 kubectl)。

可能创建集群我们可以通过SDK来完成。但是如何远程部署 k8s 应用程序(因为 Jenkins 在另一台机器上 运行)。

为什么不为 jenkins 配置 kubectl 并使用 kubectl apply deployment.yaml 命令部署应用程序?

获得 kubectl 配置后,您可以将其保存为机密文本。我有一个面试任务,这里是这样部署的一个例子: https://github.com/mtuktarov/hello

它使用共享库: https://github.com/mtuktarov/hello-jenkins-lib

最后,我按照以下步骤创建 Bash 自动化脚本 完成了这个练习:

  1. 使用应用程序二进制文件创建了 Docker 图像。

  2. 使用 eksctl create cluster <PARAM> 创建了 EKS 集群,它创建了 EKS 控制平面和工作节点。

  3. 使用 Docker 图像创建 Kubernetes 部署文件并使用 kubectl apply <PARAM> 命令行部署。

  4. 使用 kubectl expose <PARAM> cli 公开应用程序。

来自 AWS EKS 服务的最新更新:

AWS 最近宣布支持使用 AWS SDK 创建 AWS EKS Worker 节点。所以现在创建 EKS 环境可以使用 SDK 本身来完成。

===================

更新:

现在 AWS 已支持通过 UI 和 AWS SDK 创建工作节点。 https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EKS.html#createNodegroup-property