如何使用Pulumi部署一个Nginx Web服务器

127 阅读3分钟

读者朋友们,大家好!在这篇博客中,我们将看看如何用Pulumi部署一个Nginx Web服务器。在你开始使用Pulumi之前,你应该熟悉Kubernetes的工作负载。

什么是Pulumi?

Pulumi是一个开源的基础设施即代码工具,通过利用最流行的编程语言,简化了云资源的配置和管理。

Pulumi成立于2017年,从根本上改变了DevOps团队对待基础设施即代码概念的方式。Pulumi不再依赖特定领域的语言,而是使组织能够使用真正的编程语言来提供和退出云原生基础设施。

什么是基础设施即代码(IaC)?

  • 基础设施即代码(IaC)是使用描述性的编码语言来自动化资源配置和管理方案的过程。
  • 在基础设施即代码(IaC)之前,系统管理员必须手动配置、部署和管理服务器资源。在他们部署应用程序之前,他们需要配置裸机。由于手动管理基础设施,出现了许多问题。它成本高,速度慢,难以扩展,而且容易出现人为错误。
  • 云计算的引入简化了虚拟化环境的部署,但管理员仍然需要手动部署环境。他们需要访问云供应商基于网络的仪表板,点击按钮来部署所需的服务器配置。

它是如何工作的?

由于其多语言和多云功能,Pulumi已成为DevOps环境中首选的基础设施即代码工具。它为DevOps工程师提供了一种熟悉的管理资源的方式。

这是由Pulumi的云对象模型和评估运行时完成的。它接受你的任何语言的程序,确定你要管理的云资源,并执行它。所有这些都是可能的,因为它在本质上是语言中立和云中立的。

Pulumi系统由三部分组成。

  • **语言主机:**您的Pulumi程序由语言主机运行,以创建一个环境并向部署引擎注册资源。
  • **部署引擎:**它执行大量的检查和计算,以确定是否应该创建、更新、删除或复制资源。
  • 资源提供者。Pulumi根据你的语言和云提供商的偏好,在后台下载软件包和插件。

安装Pulumi CLI。

curl -fsSL https://get.pulumi.com | sh

安装Pulumi后,通过运行pulumi CLI来验证一切工作正常。

开始使用Kubernetes

为了快速演示Pulumi如何在Kubernetes上部署基础设施,请按照以下步骤,轻松部署NGINX网络服务器

创建一个新项目。

现在你已经建立了你的环境,让我们来创建你的第一个Pulumi程序。

mkdir demo && cd demo && pulumi new kubernetes-python

最初,你会被要求提供一个项目名称和描述。稍后,你将被要求提供一个堆栈的名称。

命令完成后,项目和堆栈将被准备好。

部署堆栈。

这个命令指示Pulumi确定创建堆栈所需的资源。首先,显示了即将发生的变化的预览

$ pulumi up
Previewing update (dev)

     Type                              Name               Plan       
 +   pulumi:pulumi:Stack               nginx-project-dev  create     
 +   └─ kubernetes:apps/v1:Deployment  nginx              create     
 
Outputs:
    name: "nginx-fc09142e"

Resources:
    + 2 to create

Do you want to perform this update?
> yes
> no

选择yes ,将在Kubernetes中创建资源。

Do you want to perform this update? yes
Updating (dev)

     Type                              Name               Status      
 +   pulumi:pulumi:Stack               nginx-project-dev  created     
 +   └─ kubernetes:apps/v1:Deployment  nginx              created     
 
Outputs:
    name: "nginx-7076e6df"

Resources:
    + 2 created

Duration: 10s

我们导出的部署的名称被显示为堆栈输出。

销毁堆栈。

现在我们已经看到了如何将变化部署到我们的方案中,让我们去看看如何清理和解构构成我们堆栈的资源。

执行下面的命令来销毁资源。

$ pulumi destroy 

要删除堆栈,运行。

$ pulumi stack rm dev

这将从Pulumi服务中完全删除堆栈,以及其所有的更新历史。