- Notifications
You must be signed in to change notification settings - Fork55
karmada-io/dashboard
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Karmada Dashboard is a general-purpose, web-based control panel for Karmada which is a multi-cluster management project.
You need to have a Karmada installed on Kubernetes(aka.host cluster
) and thekarmadactl orkubectl command-line tool must be configured to communicate with your host cluster and Karmada control plane.
If you don't already have the Karmada, you can launch one by following thistutorial.
In the following steps, we are going to install Karmada Dashboard on thehost cluster
where running the Karmadacontrol plane components. We assume that Karmada was installed in namespacekarmada-system
and Karmada config islocated at$HOME/.kube/karmada.config
, if this differs from your environment, please modify the following commandsaccordingly.
- Switch user-context of your Karmada config to
karmada-host
.
export KUBECONFIG="$HOME/.kube/karmada.config"kubectl config use-context karmada-host
Now, you should be able to see Karmada control plane components by following command:
kubectl get deployments.apps -n karmada-system
If everything works fine, you will get similar messages as following:
NAME READY UP-TO-DATE AVAILABLE AGEkarmada-aggregated-apiserver 2/2 2 2 3dkarmada-apiserver 1/1 1 1 3dkarmada-controller-manager 1/1 1 1 3dkarmada-kube-controller-manager 1/1 1 1 3dkarmada-scheduler 2/2 2 2 3dkarmada-webhook 2/2 2 2 3d
- 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
This will deploy two components inkarmada-system
namespace:
kubectl get deployments.apps -n karmada-system karmada-dev-linux-renhongcai: Fri Jan 10 16:08:38 2025NAME READY UP-TO-DATE AVAILABLE AGEkarmada-dashboard-api 1/1 1 1 2mkarmada-dashboard-web 1/1 1 1 2m...
Then you will be able to access the Karmada Dashboard byhttp://your-karmada-host:32000
.Note that, the Karmada Dashboard service type isNodePort
, this exposes the dashboard on a specific port on each nodeof yourhost cluster
, allowing you to access it via any node's IP address and that port.
You also can usekubectl 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 viahttp://localhost:8000
.
You still need the jwt token to login to the dashboard.
- Create Service Account
switch user-context to karmada-apiserver:
kubectl config use-context karmada-apiserver
Create Service Account:
kubectl apply -f artifacts/dashboard/karmada-dashboard-sa.yaml
- Get jwt token
Execute the following code to get the jwt token:
kubectl -n karmada-system get secret/karmada-dashboard-secret -o go-template="{{.data.token | base64decode}}"
it should print results like this:
eyJhbGciOiJSUzI1NiIsImtpZCI6InZLdkRNclVZSFB6SUVXczBIRm8zMDBxOHFOanQxbWU4WUk1VVVpUzZwMG8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrYXJtYWRhLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrYXJtYWRhLWRhc2hib2FyZC10b2tlbi14NnhzcCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrYXJtYWRhLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE5Y2RkZDc3LTkyOWYtNGM0MS1iZDY4LWIzYWVhY2E0NGJiYiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprYXJtYWRhLXN5c3RlbTprYXJtYWRhLWRhc2hib2FyZCJ9.F0BqSxl0GVGvJZ_WNwcEFtChE7joMdIPGhv8--eN22AFTX34IzJ_2akjZcWQ63mbgr1mVY4WjYdl7KRS6w4fEQpqWkWx2Dfp3pylIcMslYRrUPirHE2YN13JDxvjtYyhBVPlbYHSj7y0rvxtfTr7iFaVRMFFiUbC3kVKNhuZtgk_tBHg4UDCQQKFALGc8xndU5nz-BF1gHgzEfLcf9Zyvxj1xLy9mEkLotZjIcnZhwiHKFYtjvCnGXxGyrTvQ5rgilAxBKv0TcmjQep_TG_Q5M9r0u8wmxhDnYd2a7wsJ3P3OnDw7smk6ikY8UzMxVoEPG7XoRcmNqhhAEutvcJoyw
Now open Karmada-dashboard with urlhttp://your-karmada-host:32000
copy the token you just generated and paste it into the Enter token field on the login page.Once the process of authentication passed, you can use karmada dashboard freely. You can follow the Usage of karmada-dashboard to have a quick experience of karmada dashboard.
Regular Meeting For dashboard:
- Wednesday at 14:30 UTC+8 (Chinese)(biweekly).Convert to your timezone.
- There isn't a dedicated English meeting yet. If you have any topics to discuss, please jointhe community meeting.
Resources:
Karmada dashboard is still catching up with the features of Karmada, we have only implemented the basic functionalities currently.If you want to contribute to the development of the Karmada dashboard, you can refer to the document of development, we are happy to see more contributors join us.Please feel free to submit issues or pull requests to our repository.
Karmada-dashboard is under the Apache 2.0 license. See theLICENSE file for details.
About
Web UI for Karmada