Sonic云真机平台容器化部署:Docker Compose与K8s实战指南

张开发
2026/4/8 13:38:26 15 分钟阅读

分享文章

Sonic云真机平台容器化部署:Docker Compose与K8s实战指南
Sonic云真机平台容器化部署Docker Compose与K8s实战指南【免费下载链接】sonic-serverBack end of Sonic cloud real machine platform. Sonic云真机平台后端服务。项目地址: https://gitcode.com/gh_mirrors/so/sonic-serverSonic云真机平台是一个革命性的移动设备远程控制调试与自动化测试平台为全球开发者和测试工程师提供卓越的使用体验。本文将详细介绍如何通过Docker Compose和Kubernetes两种方式快速部署Sonic云真机平台帮助您构建高效的移动设备测试环境。 Sonic云真机平台架构概述Sonic云真机平台采用微服务架构设计包含以下核心组件sonic-server-eureka: 服务注册与发现中心sonic-server-gateway: API网关服务sonic-server-controller: 核心控制服务sonic-server-folder: 文件管理服务sonic-client-web: 前端Web界面Sonic云真机平台架构 环境准备与前置条件在开始部署之前请确保您的系统满足以下要求操作系统: Linux/Windows/macOSDocker: 版本20.10Docker Compose: 版本2.0内存: 至少4GB RAM磁盘空间: 至少10GB可用空间网络: 稳定的网络连接 Docker Compose一键部署方案步骤1获取项目代码git clone https://gitcode.com/gh_mirrors/so/sonic-server cd sonic-server步骤2配置环境变量创建.env文件并配置必要参数# 基础配置 SONIC_VERSIONlatest SONIC_SERVER_HOSTlocalhost SONIC_SERVER_PORT3000 # Eureka配置 SONIC_EUREKA_PORT8761 SONIC_EUREKA_USERNAMEadmin SONIC_EUREKA_PASSWORDadmin123 # MySQL数据库配置 MYSQL_HOSTmysql-host MYSQL_PORT3306 MYSQL_DATABASEsonic MYSQL_USERNAMEsonic MYSQL_PASSWORDsonic123 # JWT安全配置 SECRET_KEYyour-secret-key EXPIRE_DAY7步骤3启动所有服务使用Docker Compose启动完整的Sonic云真机平台# 使用官方镜像国际网络 docker-compose up -d # 或使用国内镜像加速 docker-compose -f docker-compose-zh.yml up -d步骤4验证部署状态检查所有服务是否正常运行docker-compose ps您应该看到类似以下的输出名称 状态 端口 sonic-server-eureka 运行中 8761:8761 sonic-server-gateway 运行中 sonic-server-controller 运行中 sonic-server-folder 运行中 sonic-client-web 运行中 3000:80步骤5访问Web界面打开浏览器访问http://localhost:3000☸️ Kubernetes生产级部署方案部署架构设计对于生产环境我们建议使用Kubernetes进行部署以获得更好的可扩展性和高可用性。创建Kubernetes配置文件1. 创建命名空间# sonic-namespace.yaml apiVersion: v1 kind: Namespace metadata: name: sonic2. 部署MySQL数据库# mysql-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: sonic-mysql namespace: sonic spec: replicas: 1 selector: matchLabels: app: sonic-mysql template: metadata: labels: app: sonic-mysql spec: containers: - name: mysql image: mysql:8.0 env: - name: MYSQL_ROOT_PASSWORD value: root123 - name: MYSQL_DATABASE value: sonic - name: MYSQL_USER value: sonic - name: MYSQL_PASSWORD value: sonic123 ports: - containerPort: 3306 volumeMounts: - name: mysql-storage mountPath: /var/lib/mysql volumes: - name: mysql-storage persistentVolumeClaim: claimName: mysql-pvc --- apiVersion: v1 kind: Service metadata: name: sonic-mysql namespace: sonic spec: selector: app: sonic-mysql ports: - port: 3306 targetPort: 33063. 部署Eureka服务注册中心# eureka-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: sonic-eureka namespace: sonic spec: replicas: 2 selector: matchLabels: app: sonic-eureka template: metadata: labels: app: sonic-eureka spec: containers: - name: eureka image: sonicorg/sonic-server-eureka:latest env: - name: SONIC_EUREKA_PORT value: 8761 - name: SONIC_EUREKA_USERNAME value: admin - name: SONIC_EUREKA_PASSWORD value: admin123 ports: - containerPort: 8761 --- apiVersion: v1 kind: Service metadata: name: sonic-eureka namespace: sonic spec: selector: app: sonic-eureka ports: - port: 8761 targetPort: 8761 type: ClusterIP4. 部署其他微服务按照类似的模式创建Gateway、Controller、Folder和Web服务的Deployment和Service配置。使用Helm Chart部署推荐# 创建Helm Chart目录结构 mkdir -p sonic-chart/templates mkdir -p sonic-chart/values # 编写values.yaml配置文件 cat sonic-chart/values.yaml EOF global: replicaCount: 2 image: repository: sonicorg tag: latest pullPolicy: IfNotPresent eureka: enabled: true port: 8761 username: admin password: admin123 gateway: enabled: true controller: enabled: true mysql: host: sonic-mysql port: 3306 database: sonic username: sonic password: sonic123 folder: enabled: true web: enabled: true service: type: LoadBalancer port: 3000 EOF 配置文件详解核心配置文件位置Sonic云真机平台的配置文件位于以下位置应用配置:sonic-server-common/src/main/resources/application-*.yml数据库配置:sonic-server-common/src/main/resources/application-jdbc.yml用户配置:sonic-server-common/src/main/resources/application-user.yml国际化配置:sonic-server-common/src/main/resources/i18n/关键配置参数数据库连接配置# application-jdbc.yml spring: datasource: url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE} username: ${MYSQL_USERNAME} password: ${MYSQL_PASSWORD} driver-class-name: com.mysql.cj.jdbc.Driver服务发现配置# application-feign.yml eureka: client: service-url: defaultZone: http://${SONIC_EUREKA_USERNAME}:${SONIC_EUREKA_PASSWORD}${SONIC_EUREKA_HOST}:${SONIC_EUREKA_PORT}/eureka/️ 高级部署技巧1. 持久化存储配置确保重要数据持久化存储# 创建持久化卷声明 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: sonic-storage namespace: sonic spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi2. 健康检查配置为每个服务添加健康检查livenessProbe: httpGet: path: /actuator/health port: 8080 initialDelaySeconds: 60 periodSeconds: 10 readinessProbe: httpGet: path: /actuator/health port: 8080 initialDelaySeconds: 30 periodSeconds: 53. 资源限制与请求合理配置资源限制resources: requests: memory: 512Mi cpu: 250m limits: memory: 1Gi cpu: 500m 监控与运维日志管理# 查看所有服务日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f sonic-server-controller # Kubernetes环境日志查看 kubectl logs -n sonic deployment/sonic-controller性能监控集成Prometheus和Grafana进行监控# prometheus配置示例 scrape_configs: - job_name: sonic-services kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] regex: sonic-.* action: keep 故障排除指南常见问题及解决方案服务无法启动检查Docker版本是否满足要求验证.env文件配置是否正确查看容器日志docker logs container_id数据库连接失败确认MySQL服务正常运行检查数据库用户名密码是否正确验证网络连接telnet mysql-host 3306服务注册失败检查Eureka服务状态验证服务发现配置查看网络策略是否允许服务间通信Web界面无法访问确认端口映射是否正确检查防火墙设置验证服务依赖关系 最佳实践建议开发环境部署使用Docker Compose快速搭建启用热重载功能配置本地调试环境测试环境部署使用Kubernetes单节点集群配置自动化测试流水线集成CI/CD工具生产环境部署使用高可用Kubernetes集群配置自动扩缩容策略实施完善的监控告警定期备份重要数据 扩展与优化水平扩展策略# 根据负载自动扩展 apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: sonic-controller-hpa namespace: sonic spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: sonic-controller minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70网络优化配置# 配置网络策略 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sonic-network-policy namespace: sonic spec: podSelector: matchLabels: app: sonic policyTypes: - Ingress - Egress ingress: - from: - podSelector: matchLabels: app: sonic ports: - protocol: TCP port: 8080 总结Sonic云真机平台通过容器化部署方案为移动设备测试提供了灵活、可扩展的解决方案。无论是使用简单的Docker Compose进行快速部署还是采用Kubernetes进行生产级集群管理都能满足不同规模团队的需求。通过本文介绍的部署方法和最佳实践您可以快速搭建一个稳定、高效的移动设备自动化测试平台显著提升开发和测试效率。随着业务的增长您可以轻松扩展平台规模满足更多设备并发测试的需求。立即开始您的Sonic云真机平台部署之旅体验高效的移动设备自动化测试【免费下载链接】sonic-serverBack end of Sonic cloud real machine platform. Sonic云真机平台后端服务。项目地址: https://gitcode.com/gh_mirrors/so/sonic-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章