Skip to main content

2 posts tagged with "Dashboard"

View All Tags

· 3 min read

In KubeEdge v1.19, we introduced a new version of the KubeEdge Dashboard. This version of KubeEdge Dashboard is built with the Next.js framework and the MUI component library to offer better performance. Meanwhile, we have optimized and enhanced several modules of the KubeEdge Dashboard, including the device management and device model management modules.

In this article, we will introduce how to deploy and use the KubeEdge Dashboard.

Environment Pre-requisites

We can obtain the source code of KubeEdge Dashboard from the KubeEdge Dashboard GitHub repository. Before building and deploying KubeEdge Dashboard, please ensure the following environment is set up:

  • KubeEdge Cluster: Please refer to the KubeEdge official documentation to set up a KubeEdge cluster. KubeEdge Dashboard requires KubeEdge v1.15 or later versions.
  • Node.js: Install Node.js on your system, it is recommended to use Node.js v18 or later versions.
  • Node.js Package Manager: Install a Node.js package manager, such as npm, yarn, or pnpm.

Building and Deploying

Once the environment is set up and the KubeEdge Dashboard source code has been downloaded, we can use the Node.js package manager to start the KubeEdge Dashboard. In the following instructions, we will use pnpm as the example to show how to install dependencies and run KubeEdge Dashboard.

First of all, we need to install the dependencies:

pnpm install

KubeEdge Dashboard interacts with KubeEdge resources via the Kubernetes API. Therefore, we need to set the API_SERVER environment variable to specify the API Server address:

pnpm run build
API_SERVER=https://192.168.33.129:6443 pnpm run start

After starting KubeEdge Dashboard, open http://localhost:3000 in your browser to access the dashboard.

For the KubeEdge cluster with self-signed certificates, we need to set the NODE_TLS_REJECT_UNAUTHORIZED=0 environment variable to bypass certificate verification:

NODE_TLS_REJECT_UNAUTHORIZED=0 API_SERVER=<api-server> pnpm run start

Creating a Login Token

To authenticate with KubeEdge Dashboard, we need to create a token for login. The following instructions show how to create a service account dashboard-user in the kube-system namespace and generate a token for authentication.

First, we need to create a service account in the Kubernetes cluster:

kubectl create serviceaccount dashboard-user -n kube-system

To grant permissions to the service account, we need to create a cluster role binding that associates the service account with a cluster role. Kubernetes provides some built-in cluster roles, such as cluster-admin, which has access to all resources in the cluster. We can also refer to the Kubernetes documentation to create a custom cluster role if needed.

kubectl create clusterrolebinding dashboard-user-binding --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-user -n kube-system

Since Kubernetes v1.24, secrets for service accounts are no longer created automatically. We need to create an associated token by the kubectl create token command. The lifetime of the token will be determined by the server automatically, and we can specify the lifetime of the token by the --duration option.

kubectl create token dashboard-user -n kube-system

For Kubernetes v1.23 and earlier versions, Kubernetes automatically creates a secret for the service account. We can retrieve the secret by the kubectl describe secret command:

kubectl describe secret -n kube-system $(kubectl get secret -n kube-system | grep dashboard-user | awk '{print $1}')

Conclusion

With KubeEdge Dashboard, we can more easily manage KubeEdge resources such as edge applications and devices. We will continue to enhance and optimize the KubeEdge Dashboard and user experience in future releases. We also welcome feedback and suggestions from the community.

For more information on KubeEdge Dashboard, please refer to the KubeEdge Dashboard GitHub repository.

· 4 min read

On Oct 28, 2024, KubeEdge released v1.19. The new release introduces several new features for edge nodes and devices, along with a completely revamped Dashboard.

1.19 What's New

Release Highlights

Support Edge Nodes Report Event

Kubernetes Event serve as a report of an event somewhere in the cluster, reflecting status changes of cluster resources such as Nodes and Pods. In v1.19, EdgeCore supports reporting events to cloud, allowing users to directly access the status of edge nodes or Pods in the cloud via kubectl get events or kubectl describe {resource_type} {resource_name}.

This feature is disabled by default in v1.19. To enable it, execute --set modules.edged.reportEvent=true when install EdgeCore with keadm or modify the EdgeCore configuration file and then restart EdgeCore.

Refer to the link for more details.(#5722, #5811)

Support OTA(Over-The-Air) Upgrades for Edge Nodes

On the basis of NodeUpgradeJob upgrade, we add the edge node confirmation card point and the validation of the image digest. The card point confirmation allows the node upgrade to be delivered to the edge side, and the upgrade can be performed only after the user is confirmed. Image digest validation can ensure that the kubeedge/installation-pacakge image to be upgraded is secure and reliable at the edge side.

In v1.19, we can use spec.imageDigestGatter in NodeUpgradeJob to define how to get the image digest. The value to directly define the digest, The registryAPI to get the mirror digest via registry v2 API, both are mutually exclusive. If none is configured, the image digest is not verified during the upgrade.

We can also use spec.requireConfirmation to configure requireConfirmation for NodeUpgradeJob to determine whether we want to confirm at the edge side.

Refer to the link for more details.(#5589, #5761, #5863)

Mapper Supports Device Data Writing

In v1.19, we add the ability to write device data in Mapper-Framework. User can use device methods through the API provided by Mapper and complete data writing to device properties.

  • Device method API

A new definition of device methods is added in new release. Users can define device methods in the device-instance file that can be called by the outside world in device. Through device methods, users can control and write data to device properties.

  • Device data writing

In v1.19, the Mapper API capability is improved and a new device method interface is added. The user can use the relevant interface to obtain all the device methods contained in a device, as well as the calling command of the device method. Through the returned calling command, user can create a device write request to write data to device.

Refer to the link for more details.(#5662, #5902)

Add OpenTelemetry to Mapper-framework

In v1.19, we add the OpenTelemetry observability framework to mapper data plane, which can encapsulate device data and push data to multiple types of applications or databases. This feature can enhance the mapper data plane's ability to push device data.

Refer to the link for more details.(#5628)

A New Release of KubeEdge Dashboard

Based on previous Dashboard release, we have refactored the KubeEdge Dashboard using the more popular frameworks Next.js and MUI. In the new release, we rewrote and optimized around 60 pages and components, reducing about 70% of redundant code. We also upgraded the KubeEdge and native Kubernetes APIs to the latest version to maintain compatibility and added TypeScript definitions for the APIs.

Refer to the link for more details.(#29)

Important Steps before Upgrading

  • In the next release (v1.20), the default value for the EdgeCore configuration option edged.rootDirectory will change from /var/lib/edged to /var/lib/kubelet. If you wish to continue using the original path, you can set --set edged.rootDirectory=/var/lib/edged when installing EdgeCore with keadm.

  • In v1.19, please use --kubeedge-version to specify the version when installing KubeEdge with keadm, --profile version is no longer supported.