KubeVela deployment method, server and readable storage medium

Through the KubeVela deployment method, using docker image package and control command package to deploy KubeVela in offline environments, solving the problem of Kubernetes lacking application layer delivery model in hybrid distributed deployment environments, achieving efficient deployment and scaling capabilities, and improving productivity and user experience.

CN119166166APending Publication Date: 2024-12-20CHINA UNITED NETWORK COMM GRP CO LTD +2
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310739324.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-20
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

Kubernetes lacks application-layer software delivery models and abstractions in hybrid distributed deployment environments, resulting in reduced productivity, impacted user experience and prone to errors and failures, especially in offline environments.

Method used

Provide a KubeVela deployment method, using docker image package and control command package, to create and store KubeVela's functional components and plug-ins, and use the Helm package manager to deploy KubeVela in offline scenarios, including creating docker image packages and storing them in mirror repositories. , start the control command package, pull functional components and install plug-ins.

Benefits of technology

It realizes the deployment of KubeVela in offline scenarios, improves work efficiency, saves human resources, provides a convenient binary file package deployment method, and supports custom module extensions and plug-in integration.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119166166A_ABST
    Figure CN119166166A_ABST
Patent Text Reader

Abstract

The invention provides a KubeVela deployment method, a server and a readable storage medium, and relates to the technical field of cloud platforms. The method is applied to a server, the server is configured with a Kubernetes environment and a mirror image warehouse, the method comprises the steps that a docker mirror image packet and a control command packet of KubeVela are created, the docker mirror image packet comprises a function component used for deploying the KubeVela, and the control command packet comprises a control command used for pulling the function component; storing the docker mirror image packet in a mirror image warehouse, and storing the control command packet in a directory predefined by a server; and starting the control command packet, pulling the functional component, and deploying the KubeVela. Based on the method, the docker mirror image packet of the functional component with the KubeVela and the control command packet used for pulling the functional component are used, and deployment of the KubeVela in an offline scene can be achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of cloud platform technology, and in particular to a KubeVela deployment method, a server, and a readable storage medium. Background Art

[0002] With the development of cloud-native technologies, Kubernetes has become increasingly prominent as a public abstraction layer to achieve highly consistent cross-cloud and cross-environment application delivery. However, although Kubernetes excels in unifying the underlying infrastructure details, it does not provide an application-layer software delivery model and abstraction on top of a hybrid distributed deployment environment. The lack of a unified upper-level abstraction software delivery process not only reduces productivity and affects user experience, but can also lead to errors and failures in production.

[0003] In order to solve the above problems of Kubernetes, KubeVela came into being. KubeVela is an out-of-the-box modern application delivery and management platform that uses the open application model (OAM) and Kubernetes as the control plane to make application delivery in hybrid cloud environments simpler and faster. Software development teams using KubeVela can use cloud-native capabilities to build applications on demand, expand their functions as the team size grows and business scenarios change, and build applications once and run them everywhere.

[0004] Currently, KubeVela is generally deployed in online environments, and there is no complete deployment solution for offline environments. Summary of the invention

[0005] The present application provides a KubeVela deployment method, a server, and a readable storage medium, in order to realize the deployment of KubeVela in an offline scenario.

[0006] In the first aspect, the present application provides a KubeVela deployment method, which is applied to a server, and the server is configured with a Kubernetes environment and an image repository. The method includes: creating a docker image package and a control command package of KubeVela, the docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling functional components; storing the docker image package in the image repository, and storing the control command package in a predefined directory of the server; starting the control command package, pulling functional components, and deploying KubeVela.

[0007] Based on the above method, KubeVela can be deployed in an offline scenario using a docker image package with KubeVela's functional components and a control command package for pulling the functional components.

[0008] In combination with the first aspect, in some possible implementations of the first aspect, the docker image package also includes a KubeVela plug-in, the plug-in is used to expand the capabilities of the KubeVela platform, the control command package also includes a control command for installing the plug-in, and the method also includes: starting the control command package and installing the plug-in.

[0009] KubeVela is a highly extensible platform. Users can extend the capabilities of the KubeVela platform through custom modules, and KubeVela plug-ins can easily integrate these custom modules. The control command package can also be used to install plug-ins.

[0010] In combination with the first aspect, in some possible implementations of the first aspect, starting a control command package and installing a plug-in includes: starting a control command package; obtaining a project name of an image repository storing a docker image package including a plug-in; pulling the plug-in from the image repository according to the project name; and installing the plug-in.

[0011] The command package is controlled by the Helm package manager. When installing a plug-in, you need to know the project name of the image repository where the docker image package is located to obtain the complete image name. The Helm package manager finds the docker image package from the image repository through the complete image name and then installs the plug-in.

[0012] In combination with the first aspect, in some possible implementations of the first aspect, storing the docker image package in an image repository includes: identifying the name of the docker image package; loading the docker image package to a server; adding a tag with image repository attribute information to the docker image package according to the project name of the image repository; and storing the docker image package in the image repository according to the tag.

[0013] In combination with the first aspect, in some possible implementations of the first aspect, the operation of storing the docker image package in the image repository and the operation of storing the control command package in a predefined directory of the server can be executed by a pre-created script.

[0014] Compared with manual execution by staff, stored operations performed by scripts are more convenient in batch operation scenarios, saving human resources and improving work efficiency.

[0015] In combination with the first aspect, in some possible implementations of the first aspect, the control command package is a binary file package.

[0016] A binary file is a file that has not been encoded into human-readable text. That is, the control commands in the binary file package do not need to be further compiled and can be directly run by the computer. The source code file package includes the original code of the program, which needs to be compiled on the computer before it can be run, so the source code file package takes a longer time to run. Therefore, binary file packages are more convenient to use than source code file packages.

[0017] In the second aspect, the present application provides a server configured with a Kubernetes environment and an image repository, and the server includes: a processing module for creating a docker image package and a control command package of KubeVela, the docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling functional components; a storage module for storing the docker image package in the image repository and storing the control command package in a predefined directory of the server; the processing module is also used to start the control command package, pull functional components, and deploy KubeVela.

[0018] In combination with the second aspect, in some possible implementations of the second aspect, the docker image package also includes a KubeVela plug-in, which is used to expand the capabilities of the KubeVela platform. The control command package also includes control commands for installing the plug-in. The processing module is also used to start the control command package and install the plug-in.

[0019] In combination with the second aspect, in some possible implementations of the second aspect, the processing module is used to start a control command package; obtain a project name of an image repository storing a docker image package including a plug-in; pull the plug-in from the image repository according to the project name; and install the plug-in.

[0020] In combination with the second aspect, in some possible implementations of the second aspect, the processing module is used to identify the name of the docker image package; load the docker image package to the server; add a label with image repository attribute information to the docker image package according to the project name of the image repository; and the storage module is used to store the docker image package in the image repository according to the label.

[0021] In a third aspect, the present application provides a server comprising a memory and a processor, wherein the memory is used to store a computer program; the processor is used to call and execute the computer program to implement the method in the above-mentioned first aspect and any possible implementation manner of the first aspect.

[0022] In a fourth aspect, the present application provides a computer-readable storage medium, comprising a computer program, which, when executed on a computer, enables the computer to execute the method in the first aspect and any possible implementation of the first aspect.

[0023] In a fifth aspect, the present application provides a computer program product, including a computer program, which, when executed on a computer, enables the computer to execute the method in the first aspect and any possible implementation manner of the first aspect.

[0024] It should be understood that the second to fifth aspects of the present application correspond to the technical solutions of the first aspect of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 It is a schematic flow chart of the KubeVela deployment method provided in the embodiment of the present application;

[0026] Figure 2 It is a flow chart of a method for storing a docker image package in an image repository provided by an embodiment of the present application;

[0027] Figure 3 is a schematic block diagram of a server provided in an embodiment of the present application;

[0028] Figure 4 This is another schematic block diagram of the server provided in an embodiment of the present application. DETAILED DESCRIPTION

[0029] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be described clearly and completely in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of them.

[0030] Therefore, the following detailed description of the embodiments of the present application provided in the accompanying drawings is not intended to limit the scope of the present application for which protection is sought, but merely represents selected embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without creative work are within the scope of protection of the present application.

[0031] In the embodiments of the present application, the terms "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. In addition, the term "includes" and any variations thereof are intended to cover non-exclusive inclusions.

[0032] Kubernetes is an open source containerized application management framework for multiple hosts in a cloud platform. It can be used to achieve highly consistent cross-cloud and cross-environment application delivery. However, although Kubernetes excels in unifying the underlying infrastructure details, it does not provide an application-layer software delivery model and abstraction on top of a hybrid distributed deployment environment. This problem can lead to reduced productivity, affect user experience, and even cause errors and failures in production.

[0033] In order to solve the above problems of Kubernetes, KubeVela came into being. KubeVela is an out-of-the-box modern application delivery and management platform that uses OAM and Kubernetes as the control plane to make application delivery in hybrid cloud environments simpler and faster.

[0034] Currently, KubeVela is generally deployed in online environments, and there is no complete deployment solution for offline environments.

[0035] In view of this, the present application provides a KubeVela deployment method, which uses a docker image package with KubeVela's functional components and a control command package for pulling the functional components to realize the deployment of KubeVela in an offline scenario.

[0036] Figure 1 It is a schematic flow chart of the KubeVela deployment method provided in an embodiment of the present application. The method is applied to a server configured with a Kubernetes environment and an image repository. The method 100 includes steps 110 to 130. Each step in the method 100 is described in detail below.

[0037] In step 110, a docker image package and a control command package of KubeVela are created. The docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling the functional components.

[0038] Among them, the docker image package is a lightweight, executable, independent software package that contains the functional components for deploying KubeVela.

[0039] Optionally, the Docker image package also includes a KubeVela addon.

[0040] KubeVela is a highly scalable platform. Users can expand the capabilities of the KubeVela platform through custom modules, and KubeVela plug-ins can easily integrate these custom modules.

[0041] Optionally, the control command packet is a binary file packet.

[0042] A binary file is a file that has not been character-encoded into human-readable text, i.e., the control commands in the binary file package can be run directly by the computer without further compilation.

[0043] The source code file package includes the original code of the program, which needs to be compiled on the computer before it can be run, so the source code file package takes a long time to run. Therefore, the binary file package is more convenient to use than the source code file package.

[0044] In step 120, the docker image package is stored in the image repository, and the control command package is stored in a directory predefined by the server.

[0045] The main functions of the image warehouse are image storage, image management and image distribution. Each warehouse can store multiple images, and multiple images can be distinguished by labels.

[0046] Among them, the image repository can be the Harbor image repository, which is an open source container image repository project designed for enterprise users. It includes role-based access control (RBAC), lightweight directory access protocol (LDAP), auditing, security vulnerability scanning, image verification, management interface, self-registration, high availability cluster (HA) and other essential functions for enterprises. At the same time, according to the characteristics of Chinese users, functions such as image replication and Chinese support are designed.

[0047] Alternatively, the process of storing the Docker image package in the image repository can be as follows Figure 2 As shown, the following steps are included:

[0048] 201, identify the name of the docker image package;

[0049] 202, load the docker image package to the server;

[0050] 203, according to the project name of the image repository, add a tag with the image repository attribute information to the docker image package;

[0051] 204. Store the Docker image package in the image repository according to the tag.

[0052] The docker image package of KubeVela can be one docker image package or multiple docker image packages. In the case of multiple docker image packages, the name of each docker image package can be identified, and then each docker image package can be loaded to the server in turn, and then a label can be added to each docker image package in turn, and then stored in the image warehouse.

[0053] Optionally, the above operation of storing the docker image package in the image repository and the operation of storing the control command package in a directory predefined by the server can be executed by a pre-created script.

[0054] Compared with manual execution by staff, stored operations performed by scripts are more convenient in batch operation scenarios, saving human resources and improving work efficiency.

[0055] The Docker image package can be stored in the image repository through a command-line interface (CLI) command or a graphical user interface (GUI) operation.

[0056] Although CLI commands are less convenient for users than GUI operations, they save more server resources and are more conducive to executing operations through scripts.

[0057] In step 130, the control command package is started, the functional components are pulled, and KubeVela is deployed.

[0058] One possible implementation method is to start the control command package through the Helm package manager and specify the namespace of the image repository. Use the control commands in the control command package to pull the functional components used to deploy KubeVela from the image repository.

[0059] Helm is a package manager for Kubernetes that can be used to find, download, and install software packages.

[0060] Kubernetes supports multiple virtual clusters that rely on the same physical cluster. These virtual clusters are called namespaces. Namespaces are Kubernetes cluster-level resources that can create corresponding namespaces for different users, tenants, environments, or projects.

[0061] The operation of starting the control command package mentioned above may also be executed by a pre-created script.

[0062] Optionally, since the docker image package may include a KubeVela plug-in, the startup control command package may also be used to install the plug-in.

[0063] A possible implementation method for installing the plug-in is: starting a control command package; obtaining a project name of an image repository storing a docker image package including the plug-in; pulling the plug-in from the image repository according to the project name; and installing the plug-in.

[0064] Among them, although the docker image package has been stored in the image repository, when the command package is controlled by the Helm package manager and the plug-in is installed, the name of the docker image package is known in the value variable in the Helm package manager, but there is no project name of the image repository where the docker image package is located.

[0065] Therefore, it is necessary to obtain the project name of the image repository where the docker image package is located and obtain the complete image name, that is, the project name of the image repository where the docker image package is located and the name of the docker image package. The Helm package manager can find the docker image package from the image repository through the complete image name and then install the plug-in.

[0066] Based on the above KubeVela deployment method, KubeVela can be deployed in an offline scenario by using a docker image package with KubeVela's functional components and a control command package for pulling the functional components.

[0067] Figure 3 is a schematic block diagram of a server provided in an embodiment of the present application, and the server may be, for example, Figure 1 The server in the illustrated embodiment is configured with a Kubernetes environment and an image repository. The server 300 may include a processing module 310 and a storage module 320 .

[0068] Among them, the processing module 310 is used to create a docker image package and a control command package of KubeVela. The docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling functional components.

[0069] The storage module 320 is used to store the docker image package in the image repository and store the control command package in a directory predefined by the server.

[0070] The processing module 310 is also used to start the control command package, pull the functional components, and deploy KubeVela.

[0071] Optionally, the docker image package also includes a KubeVela plug-in, which is used to expand the capabilities of the KubeVela platform. The control command package also includes a control command for installing the plug-in. The processing module 310 is also used to start the control command package and install the plug-in.

[0072] Optionally, the processing module 310 is used to start a control command package; obtain a project name of an image repository storing a docker image package including a plug-in; pull the plug-in from the image repository according to the project name; and install the plug-in.

[0073] Optionally, the processing module 310 is used to identify the name of the docker image package; load the docker image package to the server; add a label with image repository attribute information to the docker image package according to the project name of the image repository; the storage module 320 is used to store the docker image package in the image repository according to the label.

[0074] Figure 4 is another schematic block diagram of a server provided in an embodiment of the present application. Figure 4 As shown, the server 400 may include at least one processor 410, which is used to implement the functions of the server in the method provided in this application. Please refer to the detailed description in the method example for details, which will not be repeated here.

[0075] The server 400 may also include a memory 420 for storing program instructions and / or data. The memory 420 is coupled to the processor 410. The coupling in this application is an indirect coupling or communication connection between devices, units or modules, which may be electrical, mechanical or other forms, for information exchange between devices, units or modules. The processor 410 may operate in conjunction with the memory 420. The processor 410 may execute program instructions stored in the memory 420. At least one of the at least one memory may be included in the processor.

[0076] The server 400 may also include a communication interface 430 for communicating with other devices via a transmission medium, so that the device in the server 400 can communicate with other devices. The communication interface 430 may be, for example, a transceiver, an interface, a bus, a circuit, or a device capable of implementing transceiver functions. The processor 410 may use the communication interface 430 to send and receive data and / or information, and to implement Figure 1 The KubeVela deployment method described in the corresponding embodiment.

[0077] The specific connection medium between the processor 410, the memory 420 and the communication interface 430 is not limited in this application. Figure 4In the embodiment, the processor 410, the memory 420 and the communication interface 430 are connected via a bus 440. The bus 440 is Figure 4 The connections between the other components are shown in bold lines, which are only for illustration and are not intended to be limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 4 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0078] In the embodiments of the present application, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0079] According to the method provided by the present application, the present application also provides a computer-readable storage medium, which stores a program code, and when the program code is run on a computer, the computer executes Figure 1 The KubeVela deployment method described in the corresponding embodiment.

[0080] According to the method provided by the present application, the present application also provides a computer program product, the computer program product comprising: computer program code. When the computer program code is run on a computer, the computer executes Figure 1 The KubeVela deployment method described in the corresponding embodiment.

[0081] The technical solution provided in this application can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in this application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a terminal device or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website site, computer, server or data center through a wired, such as coaxial cable, optical fiber, digital subscriber line (DSL) or wireless (such as infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a tape), an optical medium such as a digital video disc (DVD), or a semiconductor medium, etc.

[0082] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A KubeVela deployment method, characterized in that: Applied to a server, the server is configured with a Kubernetes environment and an image repository, the method comprising: Create a docker image package and a control command package of KubeVela, wherein the docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling the functional components; The docker image package is stored in the image warehouse, and the control command package is stored in a directory predefined by the server; Start the control command package, pull the functional components, and deploy KubeVela.

2. The method according to claim 1, characterized in that The docker image package also includes a KubeVela plug-in, which is used to expand the capabilities of the KubeVela platform. The control command package also includes a control command for installing the plug-in. The method further includes: The control command package is started to install the plug-in.

3. The method according to claim 2, characterized in that The starting of the control command package and the installation of the plug-in include: Starting the control command packet; Obtain the project name of the image repository storing the Docker image package including the plug-in; Pull the plug-in from the image repository according to the project name; Install said plugin.

4. The method according to claim 1, characterized in that The storing of the docker image package in the image warehouse includes: Identify the name of the Docker image package; Loading the Docker image package to the server; According to the project name of the image warehouse, a label with attribute information of the image warehouse is added to the docker image package; According to the tag, the docker image package is stored in the image warehouse.

5. The method according to claim 4, characterized in that The operation of storing the docker image package in the image repository and the operation of storing the control command package in a directory predefined by the server can be executed by a pre-created script.

6. The method according to claim 1, characterized in that The control command packet is a binary file packet.

7. A server, characterized in that: Configured with a Kubernetes environment and an image repository, the server includes: A processing module, used to create a docker image package and a control command package of KubeVela, wherein the docker image package includes functional components for deploying KubeVela, and the control command package includes control commands for pulling the functional components; A storage module, used to store the docker image package in the image warehouse and store the control command package in a directory predefined by the server; The processing module is also used to start the control command package, pull the functional components, and deploy KubeVela.

8. The server according to claim 7, characterized in that The docker image package also includes a KubeVela plug-in, which is used to expand the capabilities of the KubeVela platform. The control command package also includes a control command to install the plug-in. The processing module is also used to start the control command package and install the plug-in.

9. The server according to claim 8, characterized in that The processing module is used to: Starting the control command packet; Obtain the project name of the image repository storing the Docker image package including the plug-in; Pull the plug-in from the image repository according to the project name; Install said plugin.

10. The server according to claim 7, characterized in that The processing module is used to identify the name of the docker image package; Loading the Docker image package to the server; According to the project name of the image warehouse, a label with attribute information of the image warehouse is added to the docker image package; The storage module is used to store the docker image package in the image warehouse according to the label.

11. A server, characterized in that: comprising a memory and a processor, wherein: The memory is used to store computer programs; The processor is configured to execute the computer program to implement the method according to any one of claims 1 to 6.

12. A computer-readable storage medium, characterized in that: The method comprises a computer program which, when being run on a computer, causes the computer to execute the method according to any one of claims 1 to 6.