K8s 部署Django项目
K8s 部署Django项目
K8s作为目前主流互联网使用技术栈,本次介绍如何将Django项目部署到Kubernetes中。
项目代码使用前面几章节定义的Django文件上传代码,使用上一章打包好的镜像,接下来就是部署到K8s中,请往下看:
Deployment yaml
apiVersion: apps/v1 kind: Deployment metadata: annotations: analysis.crane.io/resource-recommendation: | containers: - containerName: upload-service target: cpu: 125m memory: 375Mi deployment.kubernetes.io/revision: "4" myname: xiaowangtech labels: app.kubernetes.io/instance: upload-service name: upload-service namespace: devops spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: upload-service strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: myname: xiaowangtech labels: app: upload-service spec: containers: - env: image: devops-test.pkg.coding.net/django-upload-service:v2 imagePullPolicy: IfNotPresent name: upload-service ports: - containerPort: 8000 protocol: TCP resources: limits: cpu: "1" memory: 1Gi requests: cpu: 200m memory: 1Gi terminationMessagePath: /app/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst imagePullSecrets: - name: docker-registry restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
Service yaml
apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/instance: upload-service name: upload-service-svc namespace: devops spec: internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - port: 8000 protocol: TCP targetPort: 8000 selector: app: upload-service sessionAffinity: None type: ClusterIP
Ingress yaml
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: test-ingress-internet myname: xiaowangtech labels: app.kubernetes.io/instance: upload-service name: upload-service-ingress namespace: devops spec: rules: - host: unit-upload.xxx.com http: paths: - backend: service: name: upload-service-svc port: number: 8000 path: / pathType: ImplementationSpecific tls: - hosts: - unit-upload.xxx.com secretName: xxx-com
部署查看
$ kubectl apply -f upload-service.yaml $ kubectl get ing,svc,pod -n devops
访问验证
亲测上述配置有效!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2022-08-18 JDK 1.8 二进制安装