GitLab CICD与Kubernetes实践·部署Flask Web服务

原创
ithorizon 7个月前 (10-13) 阅读数 24 #Linux

GitLab CICD与Kubernetes实践·部署Flask Web服务

随着DevOps文化的普及,持续集成和持续部署(CI/CD)已经成为现代软件开发流程中不可或缺的一部分。本文将介绍怎样使用GitLab的CI/CD流程与Kubernetes平台相结合,部署一个基于Flask的Web服务。

1. 环境准备

在起始之前,请确保您已经以下环境:

- GitLab服务器或GitLab Community Edition

- Kubernetes集群

- Docker

- kubectl命令行工具

2. 创建Flask Web应用

首先,我们需要创建一个易懂的Flask Web应用。以下是一个易懂的Flask应用示例:

python

# app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

return 'Hello, World!'

if __name__ == '__main__':

app.run(host='0.0.0.0', port=5000)

接下来,创建一个`Dockerfile`来构建Flask应用的Docker镜像:

Dockerfile

# Dockerfile

FROM python:3.8-slim

WORKDIR /app

COPY requirements.txt ./

RUN pip install -r requirements.txt

COPY . .

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

创建一个`requirements.txt`文件来列出Flask应用的依靠项:

Flask==1.1.2

3. 配置GitLab CI/CD

在您的Flask应用根目录下创建一个`.gitlab-ci.yml`文件,配置CI/CD流程:

yaml

# .gitlab-ci.yml

stages:

- build

- deploy

build_job:

stage: build

script:

- docker build -t my-flask-app .

artifacts:

paths:

- docker/build/my-flask-app

deploy_job:

stage: deploy

script:

- kubectl apply -f deployment.yaml

only:

- main

这里,我们定义了两个阶段:`build`和`deploy`。`build_job`阶段负责构建Docker镜像,并将镜像推送到GitLab的容器注册库中。`deploy_job`阶段负责在Kubernetes集群中部署应用。

4. 创建Kubernetes部署文件

在Flask应用根目录下创建一个`deployment.yaml`文件,配置Kubernetes部署:

yaml

# deployment.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: flask-deployment

spec:

replicas: 2

selector:

matchLabels:

app: flask

template:

metadata:

labels:

app: flask

spec:

containers:

- name: flask

image: gitlab.com/my-namespace/my-flask-app:latest

ports:

- containerPort: 5000

这里,我们定义了一个名为`flask-deployment`的部署,它将部署两个副本的Flask应用。`image`字段指定了从GitLab容器注册库中拉取的Docker镜像。

5. 部署Flask Web服务

完成以上步骤后,您可以通过GitLab的Web界面或命令行工具触发CI/CD流程。当CI/CD流程完成后,您的Flask Web服务将被部署到Kubernetes集群中。

您可以使用以下命令查看部署状态:

shell

kubectl get deployments

您还可以通过以下命令查看服务的IP地址和端口:

shell

kubectl get svc

然后,您可以通过浏览器访问`http://<服务IP>:<端口>`来访问您的Flask Web服务。

6. 总结

本文介绍了怎样使用GitLab的CI/CD流程与Kubernetes平台相结合,部署一个基于Flask的Web服务。通过本文的学习,您应该能够掌握以下技能:

- 使用Docker构建Flask应用的Docker镜像

- 配置GitLab CI/CD流程来自动化部署

- 创建Kubernetes部署文件来部署Flask应用

- 查看和管理Kubernetes集群中的部署和服务

愿望本文对您有所帮助,祝您在DevOps道路上越走越远!

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门