ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Minikube部署AWX:自动化运维与Kubernetes实践指南

2026/8/11 18:18:31 拓冰建站 浏览量
Minikube部署AWX:自动化运维与Kubernetes实践指南 1. 项目概述AWX作为Ansible的官方Web UI和REST API工具已经成为自动化运维领域的标配。而minikube作为本地Kubernetes开发环境能让我们在个人电脑上快速搭建Kubernetes集群。将AWX部署到minikube上既解决了生产环境前的测试验证需求又能体验完整的Kubernetes应用部署流程。最近在技术社区看到不少同行在minikube上部署AWX时遇到各种坑——从镜像拉取失败到Dashboard访问异常。结合我最近在团队内部搭建这套环境的实战经验这里把完整操作流程和避坑要点整理成指南。2. 环境准备2.1 基础环境配置推荐使用Ubuntu 20.04/22.04或CentOS 7/8作为基础系统确保已安装Docker 20.10kubectl 1.24minikube 1.28# 检查Docker版本 docker --version # 检查kubectl版本 kubectl version --client # 检查minikube版本 minikube version注意AWX对资源需求较高建议分配至少4核CPU、8GB内存和20GB磁盘空间。在minikube启动时可以通过参数指定资源配额。2.2 解决国内镜像拉取问题由于默认的Google镜像仓库在国内访问不稳定建议配置阿里云镜像源minikube start \ --driverdocker \ --image-repositoryregistry.cn-hangzhou.aliyuncs.com/google_containers \ --cpus4 \ --memory8g \ --disk-size20g启动后验证集群状态minikube status kubectl get nodes3. AWX部署流程3.1 部署PostgreSQL数据库AWX需要PostgreSQL作为后端数据库先创建持久化存储# postgres-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgres-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi应用配置并部署PostgreSQLkubectl apply -f postgres-pvc.yaml kubectl create deployment postgres \ --imagepostgres:13 \ --envPOSTGRES_PASSWORDawxpass \ --envPOSTGRES_USERawx \ --envPOSTGRES_DBawx kubectl expose deployment postgres --port54323.2 部署AWX核心组件下载官方AWX Operatorgit clone https://github.com/ansible/awx-operator.git cd awx-operator git checkout 0.30.0 # 使用稳定版本修改部署配置# awx-demo.yaml apiVersion: awx.ansible.com/v1beta1 kind: AWX metadata: name: awx-demo spec: service_type: NodePort postgres_configuration_secret: awx-postgres-configuration postgres_storage_class: standard执行部署kubectl apply -f awx-demo.yaml3.3 验证部署状态检查Pod状态kubectl get pods -l app.kubernetes.io/managed-byawx-operator正常情况下会看到awx-web和awx-task两个Pod等待它们变为Running状态。4. 访问与配置4.1 解决Dashboard访问问题获取NodePort端口kubectl get svc awx-demo-service输出示例NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE awx-demo-service NodePort 10.96.xx.xx none 80:30036/TCP 5m通过minikube访问minikube service awx-demo-service --url如果遇到访问问题检查防火墙规则sudo ufw allow 30036/tcp4.2 初始登录配置默认管理员凭据用户名admin密码通过以下命令获取kubectl get secret awx-demo-admin-password -o jsonpath{.data.password} | base64 --decode首次登录后建议修改默认密码配置SMTP服务器设置设置定期备份策略5. 常见问题排查5.1 镜像拉取失败典型错误ErrImagePull: rpc error: code Unknown desc failed to pull and unpack image...解决方案检查minikube是否配置了正确的镜像仓库手动拉取镜像docker pull ansible/awx:latest minikube image load ansible/awx:latest5.2 PostgreSQL连接问题错误日志django.db.utils.OperationalError: could not connect to server: Connection refused排查步骤检查PostgreSQL Pod是否正常运行验证网络策略是否允许连接kubectl exec -it awx-web -- nc -zv postgres 54325.3 资源不足导致崩溃症状Pod频繁重启日志中出现OOMKilled解决方法调整minikube资源分配minikube stop minikube config set memory 16384 # 提升到16GB minikube start限制AWX资源使用量# 在AWX CRD中添加 spec: resource_requirements: web: requests: cpu: 1000m memory: 2Gi task: requests: cpu: 2000m memory: 4Gi6. 性能优化建议启用持久化存储为AWX项目数据和任务日志配置PersistentVolume配置Redis缓存提升任务调度性能调整并发设置根据主机配置修改AWX_TASK_PROCS和AWX_WEB_CONCURRENCY环境变量定期清理设置任务历史保留策略避免数据库膨胀# 示例持久化配置 spec: web_extra_volume_mounts: | - name: static-data mountPath: /var/lib/awx/public extra_volumes: | - name: static-data persistentVolumeClaim: claimName: awx-static-data-pvc7. 升级与维护当需要升级AWX版本时备份数据库kubectl exec postgres-xxxx -- pg_dump -U awx awx awx_backup.sql修改Operator版本git checkout 0.31.0 # 新版本 kubectl apply -f awx-demo.yaml监控升级过程kubectl logs -f deployments/awx-operator-controller-manager升级完成后验证数据完整性回滚机制建议提前测试。