From 75615be672fbbe112b3c290cf7c16ae18ecde955 Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Fri, 10 Jan 2025 15:33:31 +0800 Subject: [PATCH] optimize readme file Signed-off-by: RainbowMango --- README.md | 71 ++++++++++++++-- README_cn.md | 83 ------------------- .../dashboard/karmada-dashboard-api.yaml | 2 +- 3 files changed, 63 insertions(+), 93 deletions(-) delete mode 100644 README_cn.md diff --git a/README.md b/README.md index df1f14df..aefd8e03 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # Karmada-dashboard [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/kubernetes/dashboard/blob/master/LICENSE) -English version|[中文版](README_cn.md) - Karmada Dashboard is a general-purpose, web-based control panel for Karmada which is a multi-cluster management project. ![image](docs/images/readme-dashboard-en.png) @@ -17,25 +15,80 @@ If you don't already have the Karmada, you can launch one by following this [tut --- ### Install Karmada-dashboard -In the following steps, we assumed that you follow this tutorial to set up a minimal environment with Karmada, for administrator who manage multi cluster with karmada, all the experience from minimal environment is reusable, there won't be a lot of differences. +In the following steps, we are going to install Karmada Dashboard on the `host cluster` where running the Karmada +control plane components. We assume that Karmada was installed in namespace `karmada-system` and Karmada config is +located at `$HOME/.kube/karmada.config`, if this differs from your environment, please modify the following commands +accordingly. -1.Switch user-context to karmada-host +1. Switch user-context of your Karmada config to `karmada-host`. ```bash export KUBECONFIG="$HOME/.kube/karmada.config" kubectl config use-context karmada-host ``` -2.Deploy Karmada-dashboard, we choose to export karmada dashboard by nodePort, which will free of any dependencies. +Now, you should be able to see Karmada control plane components by following command: +``` +kubectl get deployments.apps -n karmada-system +``` -```bash +If everything works fine, you will get similar messages as following: +``` +NAME READY UP-TO-DATE AVAILABLE AGE +karmada-aggregated-apiserver 2/2 2 2 3d +karmada-apiserver 1/1 1 1 3d +karmada-controller-manager 1/1 1 1 3d +karmada-kube-controller-manager 1/1 1 1 3d +karmada-scheduler 2/2 2 2 3d +karmada-webhook 2/2 2 2 3d +``` + +2. Deploy Karmada Dashboard + +Clone this repo to your machine: +``` +git clone https://github.com/karmada-io/dashboard.git +``` + +Change to the dashboard directory: +``` +cd dashboard +``` + +Create the secret based on your Karmada config, the Karmada Dashboard will use this config to talk to the Karmada API server. +``` +kubectl create secret generic kubeconfig --from-file=kubeconfig=$HOME/.kube/karmada.config -n karmada-system +``` + +Deploy Karmada Dashboard: +``` kubectl apply -k artifacts/overlays/nodeport-mode ``` -When the process of installation finished, you can visit the karmada dashboard by http://your-karmada-host:32000 + +This will deploy two components in `karmada-system` namespace: + +``` +kubectl get deployments.apps -n karmada-system karmada-dev-linux-renhongcai: Fri Jan 10 16:08:38 2025 + +NAME READY UP-TO-DATE AVAILABLE AGE +karmada-dashboard-api 1/1 1 1 2m +karmada-dashboard-web 1/1 1 1 2m +... +``` + +Then you will be able to access the Karmada Dashboard by `http://your-karmada-host:32000`. +Note that, the Karmada Dashboard service type is `NodePort`, this exposes the dashboard on a specific port on each node +of your `host cluster`, allowing you to access it via any node's IP address and that port. + +You also can use `kubectl port-forward` to forward a local port to the Dashboard's backend pod: +``` +kubectl port-forward -n karmada-system services/karmada-dashboard-web --address 0.0.0.0 8000:8000 +``` +Then you can access it via `http://localhost:8000`. You still need the jwt token to login to the dashboard. -3.Create Service Account +3. Create Service Account switch user-context to karmada-apiserver: ```bash @@ -46,7 +99,7 @@ Create Service Account: kubectl apply -f artifacts/dashboard/karmada-dashboard-sa.yaml ``` -4.Get jwt token +4. Get jwt token Execute the following code to get the jwt token: ```bash diff --git a/README_cn.md b/README_cn.md deleted file mode 100644 index fdad1edb..00000000 --- a/README_cn.md +++ /dev/null @@ -1,83 +0,0 @@ -# Karmada-dashboard -[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/kubernetes/dashboard/blob/master/LICENSE) - -[English version](README.md)|中文版 - -Karmada是一个多云多集群管理的项目,Karmada Dashboard 是一个通用的、基于web的,可以用来管理 Karmada 的后台管理系统。 -![image](docs/images/readme-dashboard-cn.png) - -## 🚀快速开始 - -### Prerequisites -你需要在Kubernetes上安装Karmada(下文中称之为`host cluster`),并且必须配置karmadactl或kubectl命令行工具,并且保证可以和`host cluster`以及Karmada控制平面进行通信。 - -如果你还没有未安装Karmada,您可以按照这个[教程](https://karmada.io/docs/installation/#install-karmada-for-development-environment)安装Karmada开发环境。 - - ---- -### 安装 Karmada-dashboard -下面的安装步骤中,假定你已经参考教程搭建了一个最小化的karmada环境,对于已经在生产环境中通过karmada来管理多个成员集群的情况,在最小化环境中操作和生产环境中的操作步骤基本类似。 - -1.在kubeconfig中把user-context切换到karmada-host - -```bash -export KUBECONFIG="$HOME/.kube/karmada.config" -kubectl config use-context karmada-host -``` - -2.部署Karmada-dashboard, 这里我们选择通过nodePort来暴露karmada-dashboard相关的服务, 用nodePort的好处在于可以避免依赖ingress等资源,无依赖。 - -```bash -kubectl apply -k artifacts/overlays/nodeport-mode -``` -待安装部署过程完成后,打开浏览器访问 http://your-karmada-host:32000 即可开始使用karmada-dashboard。 -在使用之前,还需要生成jwt token才能访问dashboard。 - -3.创建Service-Account资源 - -在kubeconfig中把user-context切换到karmada-apiserver -```bash -kubectl config use-context karmada-apiserver -``` -执行下面的命令创建一个service-account的资源 -```bash -kubectl apply -f artifacts/dashboard/karmada-dashboard-sa.yaml -``` - -4.获取 jwt token: - -执行下面的命令生成jwt token: -```bash -kubectl -n karmada-system get secret/karmada-dashboard-secret -o go-template="{{.data.token | base64decode}}" -``` - -jwt token的形式如下所示: -```bash -eyJhbGciOiJSUzI1NiIsImtpZCI6InZLdkRNclVZSFB6SUVXczBIRm8zMDBxOHFOanQxbWU4WUk1VVVpUzZwMG8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrYXJtYWRhLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrYXJtYWRhLWRhc2hib2FyZC10b2tlbi14NnhzcCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrYXJtYWRhLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE5Y2RkZDc3LTkyOWYtNGM0MS1iZDY4LWIzYWVhY2E0NGJiYiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprYXJtYWRhLXN5c3RlbTprYXJtYWRhLWRhc2hib2FyZCJ9.F0BqSxl0GVGvJZ_WNwcEFtChE7joMdIPGhv8--eN22AFTX34IzJ_2akjZcWQ63mbgr1mVY4WjYdl7KRS6w4fEQpqWkWx2Dfp3pylIcMslYRrUPirHE2YN13JDxvjtYyhBVPlbYHSj7y0rvxtfTr7iFaVRMFFiUbC3kVKNhuZtgk_tBHg4UDCQQKFALGc8xndU5nz-BF1gHgzEfLcf9Zyvxj1xLy9mEkLotZjIcnZhwiHKFYtjvCnGXxGyrTvQ5rgilAxBKv0TcmjQep_TG_Q5M9r0u8wmxhDnYd2a7wsJ3P3OnDw7smk6ikY8UzMxVoEPG7XoRcmNqhhAEutvcJoyw -``` - -### 登录Dashboard -在浏览器中输入 http://your-karmada-host:32000 ,复制粘贴上面生成的jwt token - -![image](docs/images/readme-login-cn.png) -等待授权流程完成后,就可以任意的使用karmada dashboard提供的服务。对于新手来说,可以参考Karmada的基本用法章节完成karmada-dashboard的快速入门。 - -## 例会 - -Dashbaord 开发例会: -* Wednesday at 14:30 UTC+8 (中文)(双周会). [Convert to your timezone](https://www.thetimezoneconverter.com/?t=14%3A30&tz=GMT%2B8&). -* 暂无英文例会,如有任何待讨论事项可参加 [Karmada 社区例会](https://github.com/karmada-io/karmada?tab=readme-ov-file#meeting). - -相关会议资源: -- [会议日程及纪要](https://docs.google.com/document/d/1dX3skCE-QRBWzABq3O9cG7yhIDUWLYWmg7kGq8UHU6s/edit) -- [会议日历](https://calendar.google.com/calendar/embed?src=a71aae8a75e3558a90683596c71382b8195bf7c84cb50e6e75d1a3e64e08480b%40group.calendar.google.com&ctz=Asia%2FShanghai) | [Subscribe](https://calendar.google.com/calendar/u/1?cid=YTcxYWFlOGE3NWUzNTU4YTkwNjgzNTk2YzcxMzgyYjgxOTViZjdjODRjYjUwZTZlNzVkMWEzZTY0ZTA4NDgwYkBncm91cC5jYWxlbmRhci5nb29nbGUuY29t) -- [会议链接](https://zoom.us/j/97070047574?pwd=lXha0Sqngw4mwtmArP1sjsLMMXk34z.1) - -## 💻贡献 -Karmada-dashboard目前仍在追赶Karmada的功能特性,目前我们实现了基础的功能。 如果您想为Karmada-dashboard的开发做出贡献,可以参考[开发文档](https://github.com/karmada-io/dashboard/blob/main/DEVELOPMENT.md),我们乐意看到更多的贡献者加入。 - -随时向Karmada-dashboard的仓库提交issue或PR。 - -## License - -Karmada-dashboard采用Apache 2.0许可证。有关详细信息请参阅[LICENSE文件](LICENSE) . diff --git a/artifacts/dashboard/karmada-dashboard-api.yaml b/artifacts/dashboard/karmada-dashboard-api.yaml index fe2dda6d..d2dea3f0 100644 --- a/artifacts/dashboard/karmada-dashboard-api.yaml +++ b/artifacts/dashboard/karmada-dashboard-api.yaml @@ -26,7 +26,7 @@ spec: - command: - karmada-dashboard-api - --karmada-kubeconfig=/etc/kubeconfig - - --karmada-context=karmada + - --karmada-context=karmada-apiserver - --kubeconfig=/etc/kubeconfig - --context=karmada - --insecure-bind-address=0.0.0.0