Unikraft Cloud Platform API
This specification describes the Unikraft Cloud Platform API, which provides mechanisms to interact with Unikraft Cloud metros. It allows you to create, manage, and interact with instances running on the platform.
Tags
Autoscale
Services allow you to load balance traffic for an Internet-facing service
like a webserver by creating multiple instances within the same service.
While you can add or remove instances to a service to scale your service,
doing this manually makes it hard to react to changes in service load. On
the other hand, always keeping a large number of instances running to cope
with bursts is not an option either. This is where autoscale comes into play.
With autoscale enabled, Unikraft Cloud takes the heavy lifting of constantly
monitoring the load of your service and automatically creates or deletes
instances as needed.
Certificates
Unikraft Cloud allows you to host your deployment at subdomains of the
intended metro and/or use custom domains (e.g., example.com). Typically,
Unikraft Cloud will automatically generate a TLS certificate for you based
on Let's Encrypt™ via a DNS-01 challenge.
For subdomains, your deployment will use the wildcard TLS certificate of the
respective Unikraft Cloud metro.
For wildcard domains you have to supply your own certificate. If you want to
use Let's Encrypt™ you can use their DNS-based challenge and upload the
resulting certificate to Unikraft Cloud.
Images
An image is a collection of objects representing a VM which can be deployed
on Unikraft Cloud. Its format is based on the OCI Image Specification.
Within the context of Unikraft Cloud, these images also include a kernel
component.
Instances
An instance is a micro vm running an application.
Node
ServiceGroups
A service group on Unikraft Cloud is used to describe how your application
exposes its functionality to the outside world. Once defined, assigning an
instance to the service will make it accessible from the Internet.
An application, running as an instance, may expose one or more ports, e.g. it
listens on port 80 because your application exposes a HTTP web service. This,
along with a set of additional metadata defines how the "service" is
configured and accessed. For example, a service may be configured to use
TLS, or be bound to a specific domain name.
When an instance is assigned to a service group, it immediately becomes
accessible over the Internet on the exposed public port, using the set DNS
name, and is routed to the set destination port.
Note: If you do not specify a DNS name when you create a service and you
indicate that the application exposes some ports, Unikraft Cloud will
generates a random DNS name for you. Unikraft Cloud also supports custom
domains like www.example.com and wildcard domains like *.example.com.
Users
Unikraft Cloud user accounts are used to manage resources, grant permissions
and control usage quotas when interacting with the Unikraft Cloud API.
Volumes
Initrd (initial ramdisk) and actual volumes serve different purposes.
An initrd is a file system loaded into memory during the boot process of the
instance. Any new files created as well as any modifications made to files
in the initrd are lost when the instance is stopped. In contrast, a volume
is a persistent storage device that keeps data across restarts. In addition,
it can be initialized with a set of files with one instance and then be
detached and attached to a another one.