尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Celery Worker部署

Celery Worker部署
📅 发布时间:2026/6/29 17:37:35
# k8s/celery-deployment.yaml - MonkeyCode生成 apiVersion: apps/v1 kind: Deployment metadata: name: myapp-celery-worker namespace: myapp-production labels: app: myapp component: celery-worker spec: replicas: 2 selector: matchLabels: app: myapp component: celery-worker template: metadata: labels: app: myapp component: celery-worker spec: containers: - name: celery-worker image: registry.example.com/myapp-api:latest command: ["celery", "-A", "app.celery_app", "worker", "--loglevel=info", "--concurrency=4"] envFrom: - configMapRef: name: myapp-config - secretRef: name: myapp-secrets resources: requests: cpu: "500m" memory: "512Mi" limits: cpu: "2000m" memory: "1Gi" --- apiVersion: apps/v1 kind: Deployment metadata: name: myapp-celery-beat namespace: myapp-production labels: app: myapp component: celery-beat spec: replicas: 1 # Beat只能运行1个副本 selector: matchLabels: app: myapp component: celery-beat template: metadata: labels: app: myapp component: celery-beat spec: containers: - name: celery-beat image: registry.example.com/myapp-api:latest command: ["celery", "-A", "app.celery_app", "beat", "--loglevel=info"] envFrom: - configMapRef: name: myapp-config - secretRef: name: myapp-secrets

6. 数据库部署(StatefulSet)

# k8s/postgres-statefulset.yaml - MonkeyCode生成 apiVersion: apps/v1 kind: StatefulSet metadata: name: postgres namespace: myapp-production spec: serviceName: postgres-service replicas: 1 # 生产环境建议用云RDS selector: matchLabels: app: myapp component: postgres template: metadata: labels: app: myapp component: postgres spec: containers: - name: postgres image: postgres:16-alpine ports: - containerPort: 5432 env: - name: POSTGRES_DB value: myapp - name: POSTGRES_USER value: appuser - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: myapp-secrets key: DB_PASSWORD - name: PGDATA value: /var/lib/postgresql/data/pgdata resources: requests: cpu: "500m" memory: "1Gi" limits: cpu: "2000m" memory: "4Gi" volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data livenessProbe: exec: command: ["pg_isready", "-U", "appuser", "-d", "myapp"] initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: exec: command: ["pg_isready", "-U", "appuser", "-d", "myapp"] initialDelaySeconds: 5 periodSeconds: 5 volumeClaimTemplates: - metadata: name: postgres-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 50Gi --- apiVersion: v1 kind: Service metadata: name: postgres-service namespace: myapp-production spec: selector: app: myapp component: postgres ports: - port: 5432 targetPort: 5432 clusterIP: None # Headless Service(StatefulSet用)

7. CI/CD流水线(GitHub Actions → K8s)

# .github/workflows/deploy.yml - MonkeyCode生成 name: Build and Deploy on: push: branches: [main] env: REGISTRY: registry.example.com IMAGE_NAME: myapp-api jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - run: pip install -r requirements.txt - run: pytest tests/ -v --cov=app --cov-report=xml - uses: codecov/codecov-action@v3 build: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Login to Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build and Push uses: docker/build-push-action@v5 with: context: . push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest cache-to: type=inline deploy: needs: build runs-on: ubuntu-latest environment: production steps: - uses: actions/checkout@v4 - name: Deploy to K8s uses: steebchen/kubectl@v2.1.1 with: config: ${{ secrets.KUBE_CONFIG }} command: set image deployment/myapp-api api=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} -n myapp-production - name: Verify Deployment run: | kubectl rollout status deployment/myapp-api -n myapp-production --timeout=300s kubectl get pods -n myapp-production -l app=myapp,component=api

8. 一键部署脚本

#!/bin/bash # scripts/deploy.sh - MonkeyCode生成 set -euo pipefail ENV=${1:-production} IMAGE_TAG=${2:-latest} echo "🚀 Deploying myapp to $ENV (tag: $IMAGE_TAG)" # 创建命名空间 kubectl apply -f k8s/namespace.yaml # 应用配置 kubectl apply -f k8s/configmap.yaml # 应用数据库 kubectl apply -f k8s/postgres-statefulset.yaml # 等待数据库就绪 echo "⏳ Waiting for PostgreSQL..." kubectl wait --for=condition=ready pod -l app=myapp,component=postgres -n myapp-$ENV --timeout=120s # 应用API kubectl set image deployment/myapp-api api=registry.example.com/myapp-api:$IMAGE_TAG -n myapp-$ENV kubectl rollout status deployment/myapp-api -n myapp-$ENV --timeout=300s # 应用Celery kubectl set image deployment/myapp-celery-worker celery-worker=registry.example.com/myapp-api:$IMAGE_TAG -n myapp-$ENV # 应用HPA kubectl apply -f k8s/hpa.yaml echo "✅ Deployment complete!" kubectl get all -n myapp-$ENV

相关新闻

  • 论文提速的终极秘籍!智能AI写作辅助网站,逻辑优化超轻松
  • 终极Chrome画中画扩展:5分钟解锁浏览器多任务处理
  • 工业品招投标效率低?实测AI智能体自动建档同步台账,告别手动搬砖

最新新闻

  • 智慧物联网-fastbee物联网源码 2.5版 FastBee 开源物联网平台 v2.5 完整说明 部署FastBee物联网平台v2.5完整源码分享,前后端+App+大屏全栈
  • FD.io VPP核心机制解析:向量包处理如何重塑高性能网络栈
  • 编程语言对比:从底层汇编到高效PHP
  • 浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
  • 网易云音乐自动打卡神器:每天300首轻松升级LV10的完整实用指南
  • Jetpack Compose 入门指南

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号