Guide to the web platform

How to purchase a service on VKube

Signup/login VKube

Visit https://vkube.vcloud.systems (opens new window) to sign up as a first-time user. Accounts are IP-based, which means that new users will only need to set up a password and save the back-up seed phase displayed during registration.

alt text

alt text

Available services

As shown in the figure below, click on "Purchase", you can see all available services and place an order. Click order button to go to purchase configuration.

alt text

Create your order

As shown in the figure below, you can choose your configuration in this page. Click Create Order button to create an order, or click Add to Cart button to add an order to shopping cart. alt text

As shown in the figure below, users can check shopping list in shopping cart icon in the upper right corner.

alt text

Complete the payment

Click on "My Orders" to complete the payment of your service and start deploying your container. Click on Pay button it will appear a payment dialogue, you can click the "Pay" button to complete the payment.

alt text

Payment dialogue

Review the order details and select the token you want to pay with (VSYS or USDV). And you also can use the third party payment. alt text

Review your purchased services

Click on "My Services" on the left sidebar to view the services you have purchased. If you need to Refund or Renew the Service, please click on the corresponding buttons. Clicking on Token button can copy the token.

alt text

How to use VKube services

VKube Dashboard

First, clicking on Token button to copy the service token. Second, go to the "Container" sidebar to click on Import and paste the token. Finally, click on Confirm button and you will see the service detail. As shown in the figure below.

Please note that each service token corresponds to a container, and it is stored in the local cache. The service token will be erased once you empty the browser cache.

Adding or deleting service token won’t affect your service info or status.

import token

Containers

container area

As you can see, there are three areas in above picture.

First Area:

On the left, "Service ID" is used to search the service. "Container Status" is used as a condition to select matched services. On the right, Refresh is to refresh the web page. Manage has two function.ImageHub is used to record the private ImageHub credentials information. Synchronize is used to synchronize the pods from the remote server.

  • ImageHub: Click the ImageHub button and click the "Save Account", it will appears a pop-up window as the follow picture. Select the different image libraries by the selection box and then fill in your account credentials. It can help you to avoid inputting the credentials when you deploy services.

imagehub button

  • Synchronize: When you use another computer or different browsers to sign up the same account, you can't see the containers data via "Containers" aside. At this time, you can click the Synchronize button and then you can see the same data.

Second Area: This area is a table header. Each column represents a different meaning. "Service ID" refers to the number of the service created. "Label" is the description you label the service when after deploying it. "Container Status" refers to the status of the pod. "Service Status" refers to the status of the service. Under "Actions", you can find the Deploy, Alias, Contact, Policy, Delete buttons:

  • Deploy: If the container has not been deployed yet, the Deploy button will be displayed. It will disappear once the container has been deployed.

  • Alias: It you want to update the service access port and alias the service name, you can use this button. Then in the same region, your services can access this service by aliasName:aliasPort.

  • Contact: For a certain service, after binding an email, when any abnormal situations occur with the service, relevant notifications will be sent. Notification message includes the service expired or Restart operation, etc. The binding of an email address can also be done on the user level. If you bind two emails at the same time, the difference between them are as follows. Suppose you have purchased three services, and one of them is bound to email A, while the user level is bound to email B, For the service bound to email A, related notifications will be sent to email A, and for the other two services, notifications will be sent to email B. As shown in the figure below, by clicking on the user's avatar, you can add and bind an email in the Account section. user_email

  • Policy: The network policy acts as a whitelist , specifying which services can access your service within the same region. You can define rules that allow only particular services or those associated with specific accounts to make requests to your service. After clicking the Policy button, the next step is clicking the "Add Rules" button and then fill in the service ID which can access your service in the same region.

  • Delete: Delete the service token in the Local Storage. This will not impact the operation of the remote container. You can import it again by using Import button in area one.

Third Area:

You can click on the arrow on the left side of each row to view the corresponding details. As the follow picture shows: pod-table

  • Service Name: Service name of the Container defined by the container creator.
  • Created Time: Time of order creation
  • Expired Time: Time at which the service expired time. If the expired time is displayed, then the container can’t be used any longer.
  • Service Duration: Total duration of the service.
  • Address: VSYS wallet address used to purchase the service.
  • Recipient: VSYS wallet address of the merchant providing the service (VKube by V Systems)
  • Service Option: Parameters of the container. This information is embedded inside a collapsing menu, accessible by clicking on the arrow icon besides the Service Options.
  • Status: Current service status, including "Pending", "Running", "CrashLoopBackOff" and so on.

Container status dialog

  • Display the status and information of all containers, including the past and current container status, configuration info, and current status

  • You can view the container Service ID in the dialog box. You can slide up, down, left, and right in the lower area to view the status information in json format

container status

container status operation

Deploy a container

After placing an order, the container status will be "Pending" and the Deploy button will appear. Start deploying your container,as shown in the figure below:

alt text

  1. First, choose your image which is from Dockerhub or Github
  2. Second, enter the image information. Currently, the supported images can be from dockerhub and GitHub. It supports public and private images.
  • Public images: For DockerHub, the recommended format is name:tag (e.g. nginx:latest). For Github, the recommended format is account name/image name:tag(e.g. john/redis:7.2.1).

  • Private images: For Dockerhub, the recommended format is account name/private repository:tag. For Github, the recommended format is account name/image name:tag. You also need to fill in the account and password. It is recommended to use a PAT(Personal Access Token) as the password. Before deployment, the corresponding image will be queried at the repository address, so you must ensure that the image with the corresponding tag is readable in the image repository. As shown in the figure below, the system will check image is existed or not. alt text

3.Third, click the Deploy button to deploy. Containers names must adhere to certain rules; they can include letters (a-z, A-Z), numbers (0-9), and hyphens (-), but can not start or end with a hyphen. The system will review each input before submitting the deployment request. Don't worry,the system will validate your input, as shown in the figure above.

Options:

  • Add Port resource:
    • If you finish the configuration, port mapping between the host and the user’s container will be completed, allowing the user’s service to be accessed on the Internet via HostIP:hostPort.
    • Click the “+Port” button to add container port and host port (which must be mapped one-to-one). The text below, 1 host port available, indicates the number of host ports that can still be added. The number of ports is determined by the Number Of Port setting in the Service Option. Users can use ports equal to or fewer than the specified Number Of Port. The system will check the availability of host port resources in the region, and if the entered port is occupied, users can input a new host port.
  • Add Configuration file resource
    • The container service reads external configuration files, avoiding the need to rebuild the image when configuration changes are required, if the configuration file was included in the image.
    • Click the Add Config button. In the configuration file edit popup, you need to fill in the configuration file name (including the absolute file path) under Config Path and the content under Config Content. Clicking the Confirm button will save the configuration file content to the path specified in the user’s container.
  • Add Environment Variable resource
    • The VKUBE environment variable works the same as Linux environment variables, allowing you to set environment variables for the container at runtime.
    • Click the Environment Variables button to add environment variables for the container deployment: name and value.
  • Advance
    • Command: The concept is the same as the Command in Docker containers, allowing you to set commands to be executed when the container starts.
    • Argument: The concept is the same as Arguments in Docker containers, allowing you to set parameters to be executed when the container starts.

pod status

Once the container is successfully deployed, you will be able to perform the following functions: Restart, Stop, Config, Redeploy, Domain, Contact, Delete

Operating the container

As shown in the figure below, after the deployment is completed, the allowed operations on the container: Restart, Stop, Config, Redeploy, Domain, Contact, Delete. The Notice action area is some error message when the container is abnormal.

alt text

Restart

Click the Restart button, the all containers belong this service will stop first, and then start again. After a restart, the previous container’s logs and other data will be deleted. If you want to prevent data from being deleted after a restart, you should use the Persistence feature to persist data at a user-specified path.

Stop

Click the Stop button, the all containers belong this service will be stopped. If you want to start again, you should click the Start button. It should be noted that after the Stop operation, billing does not stop. For example, if you purchase a 2-hour service, it is successfully deployed at 8:00, and expires at 10:00. If you perform the Stop operation at 9:00, and then restart at 9:30, the expiration time will not be extended to 10:30, but remains at 10:00. It means that the "End Time" in the follow picture is unchanged. As shown in the figure below, the "End Time" is unchanged.

alt text

Config

Click the Config operation to modify the content of the container’s configuration files and environment variables.

  • Users can select a specific configuration file from a container that they want to modify or view. Configuration files can be edited manually or by uploading a file. Note that the upload operation reads the file to the front end, and the configuration will only take effect after clicking the Confirm button.
  • For manual configuration of environment variables, click + to add a configuration and - to remove one. You can also choose to upload a file, as shown in the image below:

config first

config second

Redeploy

Redeploying means you can modify deployment information freely for a new deployment. The parameters have the same meaning as in Deploy. For example, if you initially deployed an Nginx service, you can deploy a Redis service during redeployment, following the same steps as the first time. Note that after redeploying, the logs of previously deployed containers will be deleted.

Domain

The domain service feature in VKUBE requires users to configure their domain (e.g., A Record) to point to the nodeIP, which is the IP address of the machine hosting the user’s service. After completing this step, you can use VKUBE‘s domain service feature to proxy the user’s service. The configuration information is shown below, and once the setup is completed, users can access their deployed services on VKUBE via their domain on the Internet.

Supported operations for container domain binding:

1.Add (supports multiple domain bindings): Establish a proxy relationship between the user service and user domain, allowing the user domain to access the service deployed on VKUBE over the Internet. For the same service, if the user configures multiple domain mappings (e.g., A Record), multiple domains can be bound.

2.Unbind All: Unbind all domains from VKUBE at once. This only removes the proxy relationship between the user service and domain in VKUBE, without affecting the user’s domain mapping configuration.

3.Unbind Single domain

Parameter Explanation:

  • Domain: The user domain to be bound to VKUBE, e.g., www.example.com

  • Container Port: The port number the user’s container listens on, e.g., 80

  • Letsencrypt: Whether to use the free certificate generated by Letsencrypt provided by VKUBE. If selected, the system will automatically apply for and bind the certificate. alt text

Alias

The VKUNE Alias feature allows users to assign an alias to their services. In the same region, different services can communicate with each other using this alias.

Parameter Explanation:

  • Alias: Users can enter a custom or meaningful string as the service alias.

  • Alias Port: The port number associated with the alias, e.g., 80.

  • Container Port: The port number the user’s service listens on.

  • Protocol: The network protocol used by the service, either TCP or UDP.

Example:

Alias mongo-url
Alias Port 27017
container Port 27017
Protocol TCP

Once the setup is completed, services within the same region on VKUBE can access the service using mongo-url:27017.

Note: If the user has deployed a web service, using the alias to access it in a browser (e.g., mongo-url:27017) will not work.

Contact

The VKUBE Contact feature binds an email address to the user’s service. When there is an issue with the service, related notifications will be sent. Currently, it synchronizes with VKUBE’s Notice system. Any new information in Notice will be sent to the configured email if set.

Parameter Explanation:

  • Your Email address: Users can enter their email address to serve as the contact for the service.
  • Verification code: The system will send a verification code to this email. The user needs to enter the code and click the Verify Code button to bind the email. alt text

Delete

Clicking the Delete button will remove the selected service from the current page. This action does not affect the server in any way; it only removes the visual information of the service from the user’s browser. To restore it, go to My Services, copy the token, and then go to the My Containers page to Import it again.

Policy

The VKUBE Policy feature provides a whitelist mechanism to control access permissions between different services. Once created, all requests to the service will be restricted except those from services specified in the whitelist. For example, if you create an empty whitelist, no services will be able to access the user’s service.

Operation Procedure:

1.Click the Policy button, then click Add Rules. Under Add Rules, there are three options:

  • Single Service: Enter the User Service ID to allow this service ID to access the service with the applied Policy.

  • Services of Owner: Enter the Address to allow a group of services owned by this Address to access the service with the applied Policy.

  • Specific Service of Owner: Enter both the User Service ID and Address to allow a specific service ID and Address to access the service with the applied Policy.

2.After configuring, click Confirm. In the main configuration window, you’ll see the newly added information. If you’d like to add more rules, click Add Rules again. Once everything is correct, click the Create Policy button to complete the creation of the Policy.

3.You can also create a Policy without adding any rules, which will block all services from accessing the user’s service.

Notice

The VKUBE Notice feature allows users to view service status notifications, such as Out Of Memory events or service expiration reminders. If the user has linked an email, the system will automatically send these notifications to the email. As shown in the image below:

alt text

Single Container Operation

Clicking the downward-facing triangle on the right side of Containers will bring up a popup window displaying the list of containers that the service is actually deployed on. For each container, there are three actions: Log, Monitor, and Upgrade, as shown in the figure below.

alt text

Log

Click the Log button to view the log of the container. You should fill in start time and end time and then click on Search button to see the logs. You can click on Reset button if you want to clear the logs.

alt text

  • Tail Lines: Default is 10, representing the number of log lines displayed to the user.
  • Follow: Default is unchecked. If selected, it will continuously follow log changes, disregarding the line limit
  • Log time range: Default is empty, allowing the user to select a time range for the logs to be displayed.
  • Reset: Clicking the Reset button will clear the log content.
Monitor

Monitor button allows you to view information such as the memory and CPU usage of the current container. As shown in the figure below.

alt text

Upgrade

Clicking the Upgrade button allows you to update the image.

Please note:

  • Upgrading will restart your service, so proceed with caution.
  • Upgrading the image involves a version update of the same image. For example, if you’re running an Nginx image, the update must also be an Nginx image, just a different version.
  • For private images, you still need to provide your account and password. Please refer to the deployment steps above.

alt text

Last Updated: 10/16/2024, 3:10:42 AM