简介

Kubernetes 是一个开源容器编排系统,用于自动化容器管理、编排和扩展。对于初学者来说,了解 Kubernetes 的基础知识并将其应用于实际场景至关重要。本指南将通过一个实战项目,逐步指导您使用 Kubernetes 管理容器化应用程序。

先决条件

  • 基本的 Linux 命令知识
  • Docker 容器基础
  • Kubernetes 基本概念(例如 Pod、Deployment、Service)

实战项目概述

我们将构建一个简单的 Node.js Web 应用程序,并将其部署到 Kubernetes 集群中。该应用程序将显示一条欢迎消息。

步骤 1:创建 Kubernetes 集群

使用 Minikube 创建一个单节点 Kubernetes 集群:

minikube start

步骤 2:构建 Node.js 应用程序

创建一个名为 app 的目录并初始化一个 Node.js 项目:

mkdir app
cd app
npm init -y

添加以下代码到 app.js 文件:

const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.send('Hello from Kubernetes!');
});

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

步骤 3:创建 Docker 镜像

构建并推送 Docker 镜像到 Docker Hub:

docker build -t my-app .
docker push my-app

步骤 4:创建 Kubernetes Deployment

创建一个 Deployment 对象来管理应用程序 Pod:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app
        ports:
        - containerPort: 3000

使用 kubectl 应用 Deployment:

kubectl apply -f deployment.yaml

步骤 5:创建 Kubernetes Service

创建一个 Service 对象来公开应用程序:

apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 3000

使用 kubectl 应用 Service:

kubectl apply -f service.yaml

步骤 6:访问应用程序

获取 Service 的外部 IP 地址:

kubectl get service my-app -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

使用该 IP 地址在浏览器中访问应用程序:

http://<IP_ADDRESS>:80

结论

通过本实战指南,您已经成功将一个 Node.js 应用程序部署到 Kubernetes 集群中。您了解了如何创建 Docker 镜像、Kubernetes Deployment 和 Service。这些基础知识将为您在 Kubernetes 中管理更复杂的应用程序奠定坚实的基础。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐