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