OpenRun Kubernetes部署指南:大规模企业应用的最佳实践
2026/7/21 17:23:45 网站建设 项目流程

OpenRun Kubernetes部署指南:大规模企业应用的最佳实践

【免费下载链接】openrunDeployment platform for code-first internal tools. Deploy web apps declaratively, on a single-node or on Kubernetes, with OIDC/SAML auth and RBAC.项目地址: https://gitcode.com/gh_mirrors/cl/openrun

OpenRun是一款专为内部工具设计的代码优先部署平台,支持在单节点或Kubernetes集群上以声明式方式部署Web应用,并集成OIDC/SAML认证和RBAC权限控制。本文将详细介绍如何在Kubernetes环境中部署和优化OpenRun,帮助企业实现大规模应用的高效管理。

📌 为什么选择Kubernetes部署OpenRun?

OpenRun提供了从单节点到Kubernetes集群的无缝扩展能力,无需修改配置即可实现架构升级。在Kubernetes环境中部署OpenRun具有以下优势:

  • 高可用性:通过Kubernetes的自愈能力确保服务持续稳定运行
  • 弹性伸缩:基于CPU/内存指标自动调整应用实例数量
  • ** declarative配置**:采用类Python的Starlark语言简化应用定义
  • 完整的GitOps支持:直接从Git仓库部署应用,无需额外构建服务器

🔧 准备工作

在开始部署前,请确保您的环境满足以下要求:

  • Kubernetes集群(1.21+版本)
  • Helm 3.8+
  • 容器注册表(可通过Helm安装或使用外部注册表)
  • Postgres数据库(Kubernetes环境不支持SQLite元数据存储)

🚀 快速安装步骤

使用Helm Chart安装

OpenRun提供官方Helm Chart,可快速部署到Kubernetes集群:

# 添加OpenRun Helm仓库 helm repo add openrun https://openrundev.github.io/openrun-helm-charts/ # 安装带内置注册表的测试环境 helm install openrun1 openrun/openrun \ --namespace openrun --create-namespace --set registry.enabled=true # 生产环境推荐使用外部注册表 helm install openrun1 openrun/openrun \ --namespace openrun --create-namespace --set config.registry.url=<registry_url>

使用Terraform进行生产环境部署

对于AWS云环境,OpenRun提供了完整的Terraform配置,可一键部署EKS集群、ECR注册表和RDS Postgres:

# 克隆仓库 git clone https://gitcode.com/gh_mirrors/cl/openrun # 进入Terraform配置目录 cd openrun/deploy/terraform # 复制示例配置并修改 cp tfvars.sample terraform.tfvars # 初始化并应用配置 terraform init terraform apply --var-file terraform.tfvars

🏗️ Kubernetes架构详解

OpenRun在Kubernetes环境中的架构如下:

主要组件包括:

  • OpenRun API服务器:部署在openrun命名空间,负责处理应用部署和管理请求
  • Kaniko构建作业:负责构建应用容器镜像并推送到注册表
  • 应用命名空间:所有应用部署在<main_ns>-apps命名空间(默认openrun-apps
  • Postgres元数据库:存储应用元数据和配置信息
  • 容器注册表:存储构建好的应用镜像

⚙️ 关键配置项

启用Kubernetes模式

openrun.toml中设置容器命令为Kubernetes:

[system] container_command = "kubernetes"

注册表配置

对于开发环境,可配置K3S使用HTTP注册表:

# /etc/rancher/k3s/registries.yaml mirrors: "registry.svc.cluster.local:5000": endpoint: - "http://registry.svc.cluster.local:5000"

生产环境应使用HTTPS注册表,并在Helm安装时设置:

helm install openrun1 openrun/openrun --namespace openrun --create-namespace \ --set config.registry.url=registry.example.com --set config.registry.insecure=false

绑定提供程序配置

在Kubernetes环境中预安装所需的绑定提供程序:

[bindings.install] redis = "v0.1.0@sha256:abc123..." mongodb = "v0.1.0@sha256:def456..."

🔐 安全最佳实践

  1. 使用外部Postgres:为生产环境配置外部管理的Postgres数据库,确保数据备份和高可用性
  2. RBAC权限控制:利用OpenRun的RBAC功能控制容器管理操作
    • container:read:允许查看容器状态和日志
    • container:manage:允许启动和停止容器
  3. 密钥管理:使用Kubernetes原生Secret存储敏感信息,通过secret_from引用
  4. TLS配置:确保所有组件间通信使用TLS加密,避免使用自签名证书

📈 性能优化建议

  1. 资源分配:为OpenRun API服务器和应用容器设置合理的资源请求和限制
  2. 自动扩缩容:配置HPA(Horizontal Pod Autoscaler)根据负载自动调整pod数量
  3. 缓存策略:利用Kubernetes节点本地缓存存储频繁访问的应用资源
  4. 构建优化:使用Kaniko缓存功能加速容器镜像构建过程

🧩 高级功能

蓝绿部署

OpenRun在Kubernetes环境中自动实现蓝绿部署:

  • 新版本应用部署为独立Deployment
  • 就绪后切换Service选择器指向新版本
  • 确认稳定后清理旧版本资源

状态管理

对于有状态应用:

  • 使用稳定的Deployment名称和Recreate更新策略
  • 保留PVC以便应用重新部署时恢复数据
  • 单副本部署确保ReadWriteOnce卷正常工作

📚 参考资源

  • 官方文档:docs/content/docs/Container/Kubernetes.md
  • Terraform配置:deploy/terraform/
  • 容器管理源码:internal/container/
  • 示例应用:examples/

通过本文介绍的方法,您可以在Kubernetes集群上快速部署和优化OpenRun,为企业内部工具提供可靠、安全的部署平台。无论是小型团队还是大型企业,OpenRun的声明式部署和GitOps支持都能显著提高开发和运维效率。

【免费下载链接】openrunDeployment platform for code-first internal tools. Deploy web apps declaratively, on a single-node or on Kubernetes, with OIDC/SAML auth and RBAC.项目地址: https://gitcode.com/gh_mirrors/cl/openrun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询