在 Kubernetes 上运行 Python 的最佳实践

创建 Dockerfile
1
2
3
4
5
6
7
8
9
FROM python:3.7-alpine

RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

EXPOSE 5000
CMD ["python", "/app/main.py"]
  • 从 Docker Hub 获取 3.7-alpine 官方 Python 镜像,在镜像中创建名为 app 的目录,将它设置为工作目录,将本地目录的文件复制到 app 文件夹中,运行 pip 安装程序依赖的包,监听5000端口,配置容器启动时的命令。
创建镜像
1
docker build -f Dockerfile -t hello-python:latest .
在 Docker 上直接运行
1
docker run --rm -p 5000:5000 hello-python:latest

通过浏览器访问 http://IP:5000

在 Kubernetes 上运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
apiVersion: v1
kind: Service
metadata:
name: hello-python-service
spec:
selector:
app: hello-python
ports:
- protocol: "TCP"
port: 6000
targetPort: 5000
type: NodePort

---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: hello-python
spec:
replicas: 4
template:
metadata:
labels:
app: hello-python
spec:
containers:
- name: hello-python
image: hello-python:latest
imagePullPolicy: Never
ports:
- containerPort: 5000
-------------本文结束感谢您的阅读-------------