1安装docker
docker官网下载Docker Desktop
如果Linux系统的话,用命令yum -y install docker安装docker
2安装K8s
安装好Docker Desktop以后,在设置里面安装k8s
Linux系统安装K8s可参考Kubernetes(k8s)中文教程 - OrcHome此连接教程
3环境准备
3.1将Django项目修改好配置以后复制到创建的dockerfile文件夹中
由于要自己创建docker镜像,所以需要将项目文件,与dockerfile文件放到统一目录下
编写dockerfile文件,文件的后缀必须是dockerfile
# 设置基础镜像
FROM python:3.8
# 设置工作目录
WORKDIR /app
# 复制项目文件到容器中
COPY . /app/
# 安装依赖包
RUN pip install -r /app/backend/requirements_linux.txt
# 设置环境变量
ENV PYTHONUNBUFFERED=1
# 运行 Django 项目
CMD python /app/backend/manage.py runserver 0.0.0.0:8000
执行进入到文件夹内执行docker build命令构建镜像
-t 指定创建的镜像名称和镜像的版本
-f 指定dockerfile文件,dockerfile文件有构建镜像的基本环境以及一些其他配置
在命令的最后面要加上一个"."
创建好镜像以后就能看到构建的镜像以及版本
linux系统用命令docker images查看所有的镜像
4编写k8syaml文件
编写deployment的yaml文件
用来创建pod运行项目
apiVersion: apps/v1
kind: Deployment
metadata:
name: mlgdzc-deploy
namespace: default
spec:
# 指定pod数量
replicas: 2
selector:
matchLabels:
app: mlgdzc
release: v1
template:
metadata:
labels:
app: mlgdzc
release: v1
spec:
containers:
- name: mlgdzc
# 指定镜像版本
image: mlgdzc:v1.0
# 使用本地镜像
imagePullPolicy: IfNotPresent
编码service的yaml文件
用来暴露端口
apiVersion: v1
kind: Service
metadata:
name: mlgdzc-nodeport
namespace: default
spec:
type: NodePort
selector:
app: mlgdzc
release: v1
ports:
- name: httpd
port: 8000
targetPort: 8000
# 暴露30002端口,对应pod的8000端口
nodePort: 30002
创建好两个yaml文件以后,进入到文件目录下,执行k8s命令
kubectl apply -f [yaml文件名]
k8s会根据yaml文件创建
创建好了以后可以使用命令
kubectl get pods
kubectl get deployment
查看是否创建成功,pod的运行状态为Runing,为创建成功
pod创建成功后,执行service的yaml文件
kubectl apply -f [yaml文件名]
此文件会创建一个service服务,将8000端口暴露出来30002
可以通过本机的端口访问项目
到此,Django+k8s+docker部署项目完成