☰
Kubeapps 快速上手:Helm 安装、启动 Dashboard 并部署第一个 WordPress 应用
2026/10/13 12:21:47 网站建设 项目流程
  • 云原生
  • 后端
  • 前端

【免费下载链接】kubeapps

A web-based UI for deploying and managing applications in Kubernetes clusters

项目地址:https://gitcode.com/gh_mirrors/ku/kubeapps
点击查看免费下载

Kubeapps 是一个面向 Kubernetes 集群的云原生应用管理平台,提供浏览、部署和运维应用全生命周期的 Web 界面。本文基于 Kubeapps 官方入门教程,带你完成一次完整的实践:用 Helm 安装 Kubeapps、创建演示用访问凭证、通过kubectl port-forward启动 Dashboard,并部署、查看和卸载一个 WordPress 示例应用。读完并跟做完本文,你将掌握 Kubeapps 的安装方式、API Token 认证原理与 Dashboard 的核心使用流程。

前置条件

在开始之前,请确认你的环境满足以下条件(依据 官方教程):

  • 一个可用的 Kubernetes 集群(v1.21+),以及已安装并配置好、能与集群通信的helm(v3.2.0+)和kubectl命令行工具;
  • Kubeapps 已在 AKS、GKE、kind、minikube 和 Docker for Desktop Kubernetes 上测试通过;
  • Kubeapps 支持启用了 RBAC 的集群,推荐在启用 RBAC 的集群上安装以获得更高安全性。

    在 GKE 上安装 Kubeapps 需要拥有 "Owner" 角色或 "Container Engine Admin" 角色。

Step 1:安装 Kubeapps

推荐通过 Bitnami 官方 Kubeapps chart 安装最新版本。安装命令为:

kubectl create namespace kubeapps helm install kubeapps --namespace kubeapps oci://registry-1.docker.io/bitnamicharts/kubeapps

以上命令会将 Kubeapps 部署到集群的kubeapps命名空间,安装过程可能需要几分钟。待 Pod 全部运行后再继续下一步。

从仓库中的 chart 结构看(Chart.yaml),当前仓库维护的 chart 版本为17.1.1,一次安装会部署多个协同工作的组件:

组件职责源码/镜像
frontendNGINX 前端入口,对外暴露 HTTP 服务templates/frontend
dashboardReact 构建的 Web 界面dashboard/src
kubeapps-apisgRPC API 服务,提供包仓库与应用管理接口cmd/kubeapps-apis
apprepository-controller同步 AppRepository 与 Helm 仓库索引cmd/apprepository-controller
asset-syncer将包索引写入 PostgreSQL 并失效缓存cmd/asset-syncer
oci-catalog提供 OCI 目录(如 Docker Hub)列表能力cmd/oci-catalog
pinniped-proxyPinniped 认证代理cmd/pinniped-proxy

其中frontend的 Service 名称由 frontend/service.yaml 中的common.names.fullname模板生成,即等于 release 名称kubeapps——这正是后文port-forward svc/kubeapps能直接生效的原因;而 Dashboard 的 Service 名称则带-internal-dashboard后缀,见 _helpers.tpl 中的kubeapps.dashboard.fullname定义。更详细的安装、配置与升级参数请查阅 chart README。

Step 2:创建访问 Kubeapps 和 Kubernetes 的演示凭证

对于正式面向用户的生产安装,应当 配置 OAuth2/OIDC 提供方 来启用安全认证;但仅为了快速体验,更简单的做法是创建一个 Kubernetes ServiceAccount,用它的 API Token 通过 Kubeapps 认证 Kubernetes API Server。

注意:生产环境中不建议给用户分配cluster-admin角色,请参见 访问控制文档 为不同用户配置细粒度访问控制。

Linux/macOS

kubectl create --namespace default serviceaccount kubeapps-operator kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Secret metadata: name: kubeapps-operator-token namespace: default annotations: kubernetes.io/service-account.name: kubeapps-operator type: kubernetes.io/service-account-token EOF

Windows

kubectl create --namespace default serviceaccount kubeapps-operator kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator @" apiVersion: v1 kind: Secret metadata: name: kubeapps-operator-token namespace: default annotations: kubernetes.io/service-account.name: kubeapps-operator type: kubernetes.io/service-account-token "@ | kubectl apply -f -

创建完成后,获取 Token:

Linux/macOS

kubectl get --namespace default secret kubeapps-operator-token -o go-template='{{.data.token | base64decode}}'

Windows(PowerShell)

[Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($(kubectl get --namespace default secret kubeapps-operator-token -o jsonpath='{.data.token}')))

Windows(CMD)

创建名为GetDashToken.cmd的文件,内容如下:

@ECHO OFF REM Get the Base64 encoded token kubectl get --namespace default secret kubeapps-operator-token -o jsonpath={.data.token} > b64.txt REM Decode The Token DEL token.txt certutil -decode b64.txt token.txt

在命令提示符中运行GetDashToken.cmd,Token 内容即保存在token.txt中。

机制说明:上面创建的 Secret 类型为kubernetes.io/service-account-token,并通过注解kubernetes.io/service-account.name绑定到kubeapps-operatorServiceAccount——Kubernetes API Server 检测到该 Secret 后会签发一个长期有效的 Bearer Token。之后你在 Dashboard 登录页粘贴的正是这个 Token:Dashboard 的登录组件(参见 TokenLogin.tsx)将其提交给后端,Kubeapps 再以该身份调用 Kubernetes API Server,因此该凭证的 RBAC 权限决定了你在 Kubeapps 中能看到和操作的范围。

Step 3:启动 Kubeapps Dashboard

Kubeapps 安装完成后,在本地运行以下命令建立安全访问通道:

kubectl port-forward -n kubeapps svc/kubeapps 8080:80

这会启动一个 HTTP 代理,将本机 8080 端口转发到集群内的kubeapps前端服务。在浏览器中访问 http://127.0.0.1:8080/ 即可打开 Dashboard 登录页:

将上一步生成的 Token 粘贴到登录框中完成认证,即可进入 Kubeapps Dashboard,浏览集群中已部署的应用与可用的应用目录。

注意:如果是为其他人部署 Kubeapps,应使用LoadBalancer/NodePort类型的 Service 或配置 Ingress 代替kubectl port-forward。仓库中的 ingress.yaml 支持ingress.hostname、ingress.extraHosts、TLS 与 cert-manager 注解等配置,相关参数见 values.yaml。

Step 4:部署应用——WordPress

Dashboard 启动后即可开始向集群部署应用。以部署 WordPress 为例:

  1. 使用Deploy按钮或点击Catalog页面,从已配置的任意仓库中的包列表里选择应用。本例假设要部署 WordPress,可在搜索框中检索:

  2. 点击Deploy按钮,进入 Chart 详情页。

  3. Kubeapps 会提示你输入 release 名称和应用配置值;表单由 Chart 的values(YAML)驱动,可在相邻的 YAML 标签页中查看原始内容:

  4. 点击Deploy按钮开始部署。你可以直接在浏览器中跟踪新部署的状态:页面顶部显示状态、应用的access URL以及应用包含的secret;页面下方可以看到各个资源,以及 Ready Pod 数量;将鼠标悬停在status上可以看到各工作负载中 Ready/总 Pod 数。

访问 WordPress 站点:运行Notes部分给出的命令获取 URL,或直接点击页面上显示的 HTTP/HTTPS URL。

注意:取决于云服务商,应用的可访问 URL 可能需要一段时间才能就绪,在 URL 分配前 Service 会保持 "Pending" 状态。如果使用的是 Minikube,需要在终端运行minikube tunnel,应用才能分配 IP 地址。

获取登录凭证:查看Notes部分可获取 WordPress 账号登录信息;也可以点击wordpress-password旁边的"眼睛"图标直接查看密码。

可选 Step 5:卸载/删除 WordPress

如果希望卸载 WordPress,只需在应用详情页点击Delete按钮,Kubeapps 会通过 Helm 卸载该 release 并级联删除相关资源。

后续步骤

完成本篇快速上手后,建议沿着仓库内文档继续深入:

  • 访问控制:为不同用户配置基于 RBAC 的细粒度权限;
  • 配置 OIDC 提供方:用 OAuth2/OIDC 替代演示 Token 实现正式用户认证;
  • chart README:完整的安装、配置与升级参数说明(含values.yaml全量参数);
  • 管理包仓库:添加私有/自定义 Helm 仓库;
  • ROADMAP:了解 Kubeapps 项目规划。

Kubeapps 核心能力概览:

  • 从公有或私有仓库浏览并部署打包应用;
  • 通过直观的 UI 自定义部署配置;
  • 升级、管理和删除集群中已部署的应用;
  • 通过 API 管理包仓库与应用(实现见 cmd/kubeapps-apis)。
  • 云原生
  • 后端
  • 前端

【免费下载链接】kubeapps

A web-based UI for deploying and managing applications in Kubernetes clusters

项目地址:https://gitcode.com/gh_mirrors/ku/kubeapps
点击查看免费下载

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

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

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

立即咨询