k8s部署python项目
1.编写Dockerfile
FROM python:3.7 WORKDIR /opt RUN pip3 install -U django -i https://pypi.tuna.tsinghua.edu.cn/simple/ RUN django-admin startproject mysite
2.构建镜像
docker build -t navysummer/mysite .
3.上传镜像
docker login docker push navysummer/mysite
4.创建pod
pod.yaml
apiVersion: apps/v1
kind: Deployment # 创建控制器,通过控制器创建Pod
metadata:
labels:
app: my-site # 该控制器的label
name: my-site
spec:
replicas: 1
selector:
matchLabels:
app: my-site # 选择哪个Pod
template:
metadata:
labels:
app: my-site # 为这个Pod打上标签,方便控制器管理
spec:
containers:
- image: navysummer/mysite # 远程镜像名
imagePullPolicy: IfNotPresent
name: my-site
command: ["/bin/bash"]
args: ["-c","cd mysite;python manage.py runserver 0.0.0.0:8000"]
kubectl apply -f pod.yaml
5.创建service
service.yaml
apiVersion: v1
kind: Service
metadata:
name: kube-node-service
labels:
name: kube-node-service
spec:
type: NodePort #这里代表是NodePort类型的
ports:
- port: 80 #这里的端口和clusterIP对应,供内部访问。
targetPort: 8000 #端口一定要和container暴露出来的端口对应
protocol: TCP
nodePort: 32143 # 所有的节点都会开放此端口,此端口供外部调用。
selector:
app: my-site
kubectl apply -f service.yaml

浙公网安备 33010602011771号