掌握云容器化:云中部署容器的逐步指南

容器改变了我们部署、扩展和管理应用程序的方式,将代码和依赖项打包成标准化的单元,能够在任何环境中一致地运行。在云环境中使用容器时,容器提供:

  • 可移植性,可在开发、测试和生产环境之间移植。
  • 可扩展性,能够快速适应流量和需求的变化。
  • 高效性,与传统虚拟机相比,减少了开销。

在本教程中,我们将详细介绍如何设置云托管的容器化应用程序,内容包括:

  1. 容器基础知识以及它们为何适合云环境。
  2. 设置一个基于Docker的应用程序。
  3. 将容器部署到云服务提供商(以Google Cloud Platform为例)。
  4. 在云端扩展和管理您的容器。

容器基础知识:容器如何融入云工作流程

容器封装了运行应用程序所需的所有库和依赖项。与每个都有自己操作系统的传统虚拟机不同,容器共享主机操作系统,使其轻量且高效。

云端为何选择容器?

  • 快速启动时间意味着能更快地扩展以处理可变流量。
  • 跨环境的一致性 确保代码在从开发者笔记本到生产环境时的行为一致。
  • 资源效率 可以在相同基础设施上实现高密度部署。

云容器化的核心组件

  • 容器引擎:管理和运行容器(例如 Docker、containerd)。
  • 编排:确保应用程序的可靠性、扩展性和负载平衡(例如 Kubernetes、ECS)。
  • 注册表:存储容器镜像,以便在各个环境中访问(例如 Docker Hub、GCR)。

设置 Docker 化应用

我们将从容器化一个简单的 Node.js 应用开始。

步骤 1:创建应用

1. 在项目文件夹中,初始化一个 Node.js 项目:   

Shell

 

2. 创建一个基本的服务器文件,app.js

JavaScript

 

 

3. 将 Express 添加到项目中:    

Shell

 

步骤 2:创建 Dockerfile

这个 Dockerfile 指定了如何将应用程序打包到 Docker 容器中。

Dockerfile

 

步骤 3:在本地构建和测试 Docker 镜像

1. 构建 Docker 镜像:   

Shell

 

2. 在本地运行容器:

Shell

 

 

3. 在浏览器中访问 `http://localhost:3000`。您应该会看到显示 “你好,云容器!“。

将容器部署到谷歌云平台(GCP)

在这一部分,我们将把容器镜像推送到谷歌容器注册表(GCR),并部署到谷歌Kubernetes引擎(GKE)。

第1步:设置GCP项目

1. 创建一个GCP项目。转到[Google Cloud控制台](https://console.cloud.google.com)并创建一个新项目。

2. 为您的项目启用Kubernetes引擎和容器注册表API。

第2步:将镜像推送到谷歌容器注册表

1. 为谷歌云标记Docker镜像:

Shell

 

 

2. 将镜像推送到GCR:

Shell

 

第3步:创建一个Kubernetes集群

1. 初始化一个GKE集群:

Shell

 

   

2. 配置kubectl以连接到您的新集群:

Shell

 

第4步:将容器化应用部署到GKE

1. 创建一个k8s-deployment.yaml文件来定义部署和服务:

YAML

 

2. 将应用程序部署到GKE:

Shell

 

3. 获取外部IP以访问应用程序:

Shell

 

在GKE中扩展和管理容器

第1步:调整部署规模

要调整副本的数量(例如,以处理更高的流量),请使用以下命令:

Shell

 

GKE 将通过添加副本并分发负载来自动扩展应用程序。

步骤 2:监控和管理日志

1. 使用以下命令查看 Kubernetes 中特定 Pod 的日志:

Shell

 

2. 启用 GKE 仪表板以监视 Pod 状态和资源使用情况,并可视化管理部署。

结论:利用容器进行可扩展的云部署

本教程涵盖了:

  1. 使用 Docker 将 Node.js 应用程序容器化。
  2. 部署到 Google Kubernetes Engine(GKE)以实现可扩展的托管。
  3. 在云中有效地管理和扩展容器。

借助云中的容器,您的应用程序将获得可扩展性、可移植性和效率 — 确保它们准备好处理需求、快速适应并在各种环境中保持一致。

Source:
https://dzone.com/articles/a-step-by-step-guide-to-deploying-containers-in-the-cloud