Skip to main content

v5.8.0-release

Rainbond is an "application-centric" cloud-native application management platform.Compared with other container management platforms, it provides an easier-to-use application management experience.This is an advantage, but on the other hand, due to the difference between the application-level abstraction and the actual Kubernetes resources, for many users who are already familiar with Kubernetes, using Rainbond will face the following three problems:

  1. Rainbond has limited support for Kubernetes resources.In some scenarios, it is difficult to implement scenarios such as environment variables referencing the value of a secret, adjusting Pod scheduling policies, and affinity configuration.

  2. An application that has been deployed in a Kubernetes cluster.How to migrate to Rainbond, many configurations need to manually adjust the deployment again.Migration costs are high.

  3. Existing Kubernetes Yaml files cannot be directly deployed on Rainbond.

In order to solve the above problems, we mainly made the following improvements in version:

  1. Support one-click import of existing applications in the Kubernetes cluster.We can directly import the existing applications in the cluster into Rainbond for management.

  2. Compatible with the resources and attributes of Kubernetes, and supports the creation of various resources, such as PVC, PV, Secret, etc., through Yaml files under the application.The resources created under the application can be referenced in the component.Also supports publishing to application templates.

  3. Support deploying components through Yaml files, we will convert the resources identified in the Yaml files into built-in components of Rainbond to achieve one-click deployment of Yaml files.

In general, in this release, Rainbond has gone a step further in its resource compatibility with Kubernetes' underlying resources, and many resources that were not supported before can also be created and used directly.The following is a brief introduction to the main functions of this version.

Version changes (5.7.1-5.8.0)

Interpretation of main function points:

1. Support one-click import of existing cluster applications

For applications already running in a Kubernetes cluster, we support one-click import of all applications under the namespace.When the namespace to import is selected, we can see the resources under that namespace.We will distinguish applications according to Kubernetes recommended label, and distinguish resources by application.As shown below: import-region-resource.png

Among these resources, Deployment/Statefulset/Job/CronJob will be converted into built-in components. If other resources cannot correspond to the Rainbond abstract model, they will be converted into K8s resources under the application.After clicking Next, you can see the relationship between the previous resource and the Rainbond model.As shown below

advanced_resources.jpg

After the final import, you can manage your application in Rainbond's team.

Function detailed documentation reference: https://www.rainbond.com/docs/use-manual/team-manage/ns-to-team/

2. Support deploying components through Yaml files

Many users write their own Yaml deployment applications. For the convenience of users, we also support deploying applications through Yaml.Different from other container management platforms, when deploying applications using Yaml files, we do not directly make the Yaml files take effect in the cluster, but convert them into our component types.So that users can use our application-level management functions after deployment, such as the full life cycle of components, component orchestration, release and installation, etc.

When adding components, upload your files after selecting Yaml to deploy.We will convert them into corresponding component models and application resources after identification, as shown in the following figure

yaml_team_handle.jpg

Function detailed documentation reference: https://www.rainbond.com/docs/use-manual/component-create/package-support/yaml

3. Compatible with Kubernetes resources and properties

In order to expand the capabilities of applications and components, as well as better Kubernetes-compatible resources.Under the application, we have added an entry for K8s resource , where various resources in the cluster can be deployed through Yaml.Such as PV, PVC, Service, Ingress, etc.The resources deployed here will be deployed directly to the cluster.What we define here is that it should be the basic environment your application needs to run.That is, the resources provided here should be used by the components under the current application.When published, the assets here are also published with the component.

k8s_resources_add.jpg

Also under the other settings of the component, there is an item of Kubernetes properties.We can define some properties used by this component here, such as volumes, volumeMounts, etc.Here you can mount the K8s resourcecreated under the application to expand the component capabilities.

k8s_attr.jpg

K8s resource detailed document reference under application: https://www.rainbond.com/docs/yaml-helm-guide/k8s-resource/ component Kubernetes property document reference: https://www.rainbond.com/docs /use-manual/component-manage/other/#kubernetesproperty

4. Supports direct upload of Jar/War package build components

In previous versions, when users used Jar packages for delivery, we needed to create a git repository and push the Jar packages up before building.This brings up several problems:

  • Creating a new warehouse is cumbersome and difficult to deploy in an offline environment
  • The git repository will limit the size of a single file. When the Jar package is too large, it cannot be uploaded

Therefore, in order to solve the above problems, we support directly uploading the Jar/War package to build components.As shown in the figure below, we can view the file name and the MD5 value of the file on the component overview page.To facilitate version differentiation when uploading files repeatedly.

Pasted%20Graphic%204.pn

Function detailed documentation reference: https://www.rainbond.com/docs/use-manual/component-create/package-support/jar-war

5. Support switching component build source

When we install a complete application from the application market, but some components in the application need to be replaced from source code and mirror image, then we need to modify the build source.That is to say, if I install an application and want to replace a component in it, I often can only create a new component and rearrange the dependencies.The operation is more complicated.Especially in the offline environment, when you find that there is a problem with the installed components, you need to re-engraving the disk after adjustment and release.So in order to solve this problem.In the new version, we support directly changing the component build source of the app store to mirror or source code.for quick self-testing and delivery.

change_build_source.png

6. Components that support the creation of job types (Job/CronJob)

In the new version, our component deployment type, on the basis of stateless components and stateful components, has been extended to two types, task (Job) and periodic task (CronJob). Now if you need to create a one-time task, It can be modified by changing the component deployment type.

Function detailed documentation reference: https://www.rainbond.com/docs/use-manual/component-create/task-support/job-cronjob

Detailed change points

new features

  • [Cluster management] Support one-click import of existing cluster applications
  • [Team management] Support deploying components directly through Jar, War package or Yaml file
  • [Component management] Support for creating Job/CronJob type tasks
  • [Component management] Support for components installed in the app store to modify the build source
  • [Application Management] Supports attributes supported by extended applications and components
  • [Component management] Support Dockerfile to use private image build (https://github.com/goodrain/rainbond/issues/1172)

Optimization function

BUG fix