下面是一个简单的 Kubernetes 入门示例,我们将创建一个基本的 Web 应用程序,并使用 Kubernetes 将其部署到集群中。

步骤 1:准备应用程序

我们创建一个简单的 Web 应用程序,使用 Flask 框架编写一个简单的 Hello World 页面。

# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Kubernetes!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

步骤 2:Dockerize 应用程序

我们将应用程序容器化,创建一个 Dockerfile。

# Dockerfile
FROM python:3.8-slim

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "app.py"]

步骤 3:构建 Docker 镜像

在应用程序目录中执行以下命令构建 Docker 镜像:

docker build -t my-flask-app .

步骤 4:运行 Docker 容器

在本地运行 Docker 容器并测试应用程序:

docker run -d -p 5000:5000 my-flask-app

访问 http://localhost:5000 应该能够看到 Hello World 页面。

步骤 5:安装 Kubernetes

安装并配置一个 Kubernetes 集群,可以选择使用 Minikube 在本地运行一个单节点的 Kubernetes 集群。

  1. 安装 Minikube:
    首先,你需要安装 Minikube。你可以根据你的操作系统从 Minikube 的官方网站(https://minikube.sigs.k8s.io/docs/start/)下载并安装 Minikube。
  2. 安装 kubectl:
    kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。你可以从 Kubernetes 的官方网站(https://kubernetes.io/docs/tasks/tools/install-kubectl/)下载并安装 kubectl。
  3. 启动 Minikube:
    打开终端(或命令行界面),运行以下命令来启动 Minikube 集群:
minikube start

这会下载和启动一个单节点的 Kubernetes 集群,并将其运行在你的本地机器上。
4. 验证集群状态:
运行以下命令来验证 Minikube 集群的状态:

kubectl cluster-info

如果一切正常,你应该能够看到集群的信息,包括 master 节点的地址和 kube-dns 服务的地址。
5. 使用 Minikube:
你现在可以使用 Minikube 集群了。例如,你可以使用 kubectl 命令来管理 Pod、Deployment、Service 等 Kubernetes 资源对象。
6. 停止 Minikube:
当你不再需要使用 Minikube 时,可以使用以下命令停止 Minikube 集群:

minikube stop

这会停止 Minikube 集群,但保留集群的状态和配置信息。
7. 删除 Minikube:
如果你想要完全删除 Minikube,包括所有状态和配置信息,可以使用以下命令:

minikube delete

这会停止并删除 Minikube 集群,并清除所有相关的状态和配置信息。

步骤 6:创建 Kubernetes 资源

创建一个 Kubernetes 部署(Deployment)和服务(Service)来部署我们的应用程序。

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-flask-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-flask-app
  template:
    metadata:
      labels:
        app: my-flask-app
    spec:
      containers:
      - name: my-flask-app
        image: my-flask-app
        ports:
        - containerPort: 5000

---

# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-flask-service
spec:
  selector:
    app: my-flask-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
  type: LoadBalancer

步骤 7:部署应用程序到 Kubernetes

在 Kubernetes 集群中创建部署和服务:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

步骤 8:访问应用程序

通过 Kubernetes 集群提供的公共 IP 地址访问应用程序:

kubectl get svc

使用该 IP 地址访问应用程序,应该能够看到 Hello World 页面。

Logo

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

更多推荐