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

 

  

posted @ 2022-09-17 13:30  NAVYSUMMER  阅读(717)  评论(0)    收藏  举报
交流群 编程书籍