后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载本指南完整讲解如何基于官方 Helm Chart 将 Nginx UI含其内置 Nginx 实例的 Web 管理面板部署到 Kubernetes 集群。你将掌握仓库添加与安装、一次性安装密钥读取、Ingress 暴露、持久化卷规划、升级验证等完整实操流程并理解其单写者single-writer部署模型背后的设计约束与源码依据。部署模型应用部署而非 Ingress ControllerNginx UI 官方 Helm Chart 部署的是官方容器镜像中捆绑了 Nginx 实例的完整应用。这意味着 Pod 内部同时运行 Nginx 与 Nginx UI 后端进程而非像 Ingress Controller 那样监听 Kubernetes Ingress 资源并动态改写集群路由。该 Chart 不会监听或修改集群中的任何 Ingress 资源可选ingress配置仅用于借助集群中已存在的 Ingress Controller将 Web 界面暴露出去其本质是应用入口与 Nginx UI 管理的 Nginx 配置无关Chart 元数据位于 charts/nginx-ui/Chart.yamlkubeVersion: 1.25.0-0明确限定了支持的 Kubernetes 版本下限。单写者模型为什么强制单副本Nginx UI 的配置与 SQLite 数据库都写入持久化卷属于典型的单写者single-writer工作负载。若多个 Pod 同时运行就可能并发写入同一份 Nginx 配置或同一个数据库文件导致数据损坏。为此Chart 从两个层面强制执行单副本约束部署策略在 charts/nginx-ui/templates/deployment.yaml 中显式设置strategy.type: Recreate。升级时先终止旧 Pod、再创建新 Pod保证任意时刻最多只有一个实例存活不会出现两个 Pod 同时挂载并写入同一 PVC 的情况。Schema 硬校验在 charts/nginx-ui/values.schema.json 中replicaCount被定义为const: 1任何尝试将其改大的 values 都会在helm install/upgrade时被直接拒绝。其描述信息明确写道Nginx UI is a single-writer workload and supports exactly one replica.因此不要试图通过增大replicaCount实现水平扩展需要高可用时请考虑让 Nginx UI 依赖的底层存储与网络高可用而非让应用自身多副本。前置要求要求说明Kubernetes 1.25 或更新Chart 的kubeVersion下限低于此版本安装会失败Helm 3Chart 为 Helm v2 API 格式apiVersion: v2默认 StorageClass 或已存在的 PVC用于创建并绑定持久化卷至少 2 GiB 持久化存储默认配置下nginx与nginxUI两个 PVC 各申请 1 GiB合计至少 2 GiB从自托管仓库安装1. 添加仓库并安装helm repo add nginx-ui https://cloud.nginxui.com/helm helm repo update nginx-ui helm install nginx-ui nginx-ui/nginx-ui \ --namespace nginx-ui \ --create-namespace安装过程会创建名为nginx-ui的命名空间若不存在、一个 Deployment、一个 Service 以及默认启用的两个 PersistentVolumeClaim。2. 验证部署状态等待 Deployment 与 PVC 就绪kubectl get deployment,pod,pvc -n nginx-ui kubectl rollout status deployment/nginx-ui -n nginx-uiChart 默认配置了三种探针见 charts/nginx-ui/values.yaml 的probes段全部探测/healthz端点startupProbefailureThreshold: 30、periodSeconds: 2后端容器端口backend9000等待初始化完成livenessProbefailureThreshold: 3、periodSeconds: 10探测后端端口检测进程是否僵死readinessProbefailureThreshold: 6、periodSeconds: 5探测http端口80确认可接收流量。rollout status只有在探针全部通过后才会返回成功因此它实际上同时验证了后端与 Nginx 都处于健康状态。3. 本地访问并读取安装密钥Nginx UI 支持首次部署时使用一次性安装密钥完成初始化。将 Service 的 HTTP 端口转发到本地kubectl port-forward -n nginx-ui service/nginx-ui 8080:80打开http://127.0.0.1:8080然后从持久化的 Nginx UI 数据卷中读取一次性密钥kubectl exec -n nginx-ui deployment/nginx-ui -- \ cat /etc/nginx-ui/.install_secret该密钥存放在nginxUIPVC 挂载的/etc/nginx-ui目录中因此升级或 Pod 重建后密钥依然存在无需重复生成。通过 Ingress 对外暴露当需要以域名对外提供服务时可启用 Chart 内置的 Ingress 模板。将以下内容保存为values.yamlingress: enabled: true className: nginx hosts: - host: nginx-ui.example.com paths: - path: / pathType: Prefix tls: - secretName: nginx-ui-tls hosts: - nginx-ui.example.com然后重新安装helm install nginx-ui nginx-ui/nginx-ui \ --namespace nginx-ui \ --create-namespace \ --values values.yaml注意两点Ingress Controller 必须已存在Chart 只负责创建networking.k8s.io/v1的 Ingress 资源见 charts/nginx-ui/templates/ingress.yaml实际的七层路由由集群中已部署的 Controller如 Ingress-Nginx完成TLS Secret 需提前创建示例中的nginx-ui-tls证书 Secret 必须已存在于nginx-ui命名空间Chart 不会代你签发。模板将 Ingress 的后端指向 Service 的http命名端口默认 80对应容器内捆绑 Nginx 的 HTTP 监听端口。持久化两个必备卷与一个可选卷Chart 默认创建并保留三个 PVC其中两个是运行所必需的Claim容器内挂载路径用途nginx/etc/nginx捆绑 Nginx 的配置sites、streams、SSL 证书等nginxUI/etc/nginx-ui数据库、应用设置以及一次性安装密钥www可选/var/www网站根目录默认关闭对应模板见 charts/nginx-ui/templates/pvc.yaml每个 Claim 默认accessModes: [ReadWriteOnce]、size: 1Gi。自定义存储类与复用已有卷指定 StorageClasspersistence.name.storageClass例如persistence: nginx: storageClass: local-path nginxUI: storageClass: local-path仓库自带的 CI 冒烟测试即采用此方式见 charts/nginx-ui/ci/smoke-values.yaml。复用已预置的 PVC设置persistence.name.existingClaim此时 Chart 不会创建新的 PVC而直接使用你提供的 Claim。关闭持久化仅建议测试将某卷的enabled设为false后Deployment 模板会退化为emptyDir见 charts/nginx-ui/templates/deployment.yamlPod 重建即丢失数据不适合生产。卸载后数据依然保留Chart 创建的所有 PVC 默认带有helm.sh/resource-policy: keep注解见 charts/nginx-ui/templates/pvc.yaml。因此执行helm uninstall nginx-ui -n nginx-ui后Deployment、Service、Ingress 会被删除但用户配置与数据库原样保留。需要彻底清理时请先备份 PVC 内容如备份到对象存储再手动删除 Claim。若希望卸载时自动删除 PVC可将persistence.name.retain设为false。升级升级前先刷新仓库索引再执行helm repo update nginx-ui helm upgrade nginx-ui nginx-ui/nginx-ui \ --namespace nginx-ui \ --reuse-values--reuse-values会沿用上次安装时的自定义 values若第一次安装时使用了--values此处可换成--values values.yaml以保证配置一致。由于 Deployment 使用Recreate策略升级过程会先终止旧 Pod再用新镜像重建。此时依赖的正是三个探针与/healthz端点来确认新 Pod 可用。文档说明的发布流水线会完整验证这条链路全新安装 → 向nginxUI数据卷写入标记文件 → 执行升级并重建 Pod → 校验标记文件与/healthz均保持可用确保数据在升级前后不丢失、服务不中断。容器内部结构一个 Pod 里跑什么理解 Helm Chart 部署的对象有必要了解官方容器镜像的构成。仓库根目录的 Dockerfile 展示了其内部结构基于官方nginx:latest镜像构建暴露 80/443 端口并通过 s6-overlay 进程管理器同时拉起三个服务nginx、init-config与nginx-ui将nginx-ui二进制复制到/usr/local/bin/nginx-ui由 s6 常驻运行预置了/etc/nginx/sites-available、sites-enabled、streams-available、streams-enabled等 Nginx UI 管理所需的目录结构。因此容器内 Nginx 与 Nginx UI 后端监听 9000通过回环通信这也是 Chart 中backend容器端口为 9000 的原因并且只有前端流量80/443对外暴露。常用 values 速查以下是 charts/nginx-ui/values.yaml 中最重要的配置项可在values.yaml中覆盖Value默认值说明image.repositoryuozi/nginx-ui官方容器镜像仓库image.tagChart 的appVersion镜像标签留空则取 Chart 版本image.pullPolicyIfNotPresent镜像拉取策略CI 冒烟测试中设为Alwaysservice.typeClusterIP支持ClusterIP/NodePort/LoadBalancerschema 枚举校验service.httpPort/httpsPort80/443Service 对外端口ingress.enabledfalse是否创建 Ingresspersistence.nginx.size1GiNginx 配置卷大小persistence.nginxUI.size1GiNginx UI 数据卷大小persistence.www.enabledfalse是否持久化/var/wwwresources{}容器资源请求与限制生产环境建议显式设置extraEnv/extraEnvFrom[]附加环境变量可用于注入 Nginx UI 运行配置extraVolumes/extraVolumeMounts[]附加卷挂载terminationGracePeriodSeconds30Pod 终止宽限期所有 values 均经过 charts/nginx-ui/values.schema.json 的 JSON Schema 校验错误配置如非法service.type、非法pathType、副本数不为 1会在安装时直接报错而不是等到运行时才暴露。总结Nginx UI 的 Kubernetes 部署路径非常清晰使用官方 Helm Chart 部署单副本应用、通过三个内置探针保障健康检查、以两个必需 PVCnginxnginxUI 可选www卷承载全部有状态数据并由helm.sh/resource-policy: keep保证卸载不丢数据。整个过程中需要记住三条关键纪律保持单副本、勿并发写入同一 PVC、删除 PVC 前务必先备份。结合本指南提供的 values 速查表与源码路径你可以据此在集群中完成从安装、暴露到升级运维的全流程。赞分享后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载相关推荐Apache Pulsar 在 Kubernetes 上的 Helm 安装指南环境准备、集群部署与升级实践Apache Pulsar 在 Kubernetes 上的 Helm 安装指南环境准备、集群部署与升级实践 本指南以 Apache Pulsar 官方 Hel消息队列后端流处理CubeSandbox 在 Kubernetes 集群上的 Helm 安装实战指南CubeSandbox 在 Kubernetes 集群上的 Helm 安装实战指南 导读 本文是 CubeSandbox 官方 Helm 安装指南 docs/Agent 沙箱虚拟化云原生人工智能后端容器运行时老电脑装 Windows 11 完整指南用 Rufus 3 步绕过 TPM 与 Secure Boot 限制老电脑装 Windows 11 完整指南用 Rufus 3 步绕过 TPM 与 Secure Boot 限制 当 Windows 11 的安装画面报出这台电桌面应用开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考