Skip to main content

Compute Instances (Nova)

Okustera Compute provides high-performance, enterprise-grade virtual machines powered by OpenStack Nova and KVM hypervisors with hardware virtualization acceleration (/dev/kvm).

Whether running monolithic services, container hosts, or database servers, Okustera Compute delivers bare-metal performance, automated cloud-init provisioning, and integrated browser-based management tools.


Key Capabilities​

  • Hardware-Accelerated KVM: Full CPU hardware virtualization with near-zero hypervisor overhead.
  • Standard Flavors: Pre-configured instance sizes optimized for general-purpose, compute-intensive, and high-memory workloads.
  • Automated Cloud-Init: Inject SSH keys, execute custom bootstrap scripts, install packages, and configure static networking during first boot.
  • Persistent Boot-from-Volume: Fast ephemeral root disks or persistent Ceph-backed bootable volumes with live snapshotting.
  • Interactive VNC/SPICE Web Console: Direct browser access to instance graphical or text consoles for out-of-band troubleshooting if SSH or networking is disconnected.
  • Live Serial Boot Logs: View and tail kernel boot logs (console-log) directly from the Cloud Portal for fast diagnosis of cloud-init or boot failures.
  • Instance Lifecycle Controls: Instant Start, Stop, Soft Reboot, Hard Reboot, Pause, Unpause, and Rebuild directly from the Cloud Console or REST API.

Instance Flavors​

Flavor NamevCPURAMRoot DiskRecommended Workloads
m1.tiny1512 MB1 GBLightweight test agents, DNS forwarders
m1.small12 GB20 GBMicroservices, bastion hosts, dev servers
m1.medium24 GB40 GBWeb apps, CI/CD runners, small databases
m1.large48 GB80 GBProduction web services, medium databases
m1.xlarge816 GB160 GBEnterprise backend clusters, analytics nodes

Managing Instances in the Cloud Portal​

The Okustera Cloud Portal (/compute) provides full lifecycle control over your virtual servers:

1. Launching an Instance​

  1. Navigate to Compute $\to$ Instances in the left sidebar.
  2. Click Launch Instance:
    • Name: Enter a hostname (e.g. web-server-01).
    • Image: Select an official image from the Image Catalog (e.g. Ubuntu-24.04-LTS) or your custom image.
    • Flavor: Choose a resource size (e.g. m1.medium).
    • Network: Select your private VPC Subnet.
    • Security Groups: Attach one or more firewall security groups (e.g. default, web-sg).
    • SSH Keypair: Select an existing keypair or import a new public key.
    • User Data (Cloud-Init): Optionally paste a bash bootstrap script or cloud-config YAML.
  3. Click Launch Instance. The server will boot in under 15 seconds.

2. Accessing the Out-of-Band VNC Web Console​

If your instance becomes unreachable over SSH (e.g. firewall misconfiguration or network interface error):

  1. In the Instances list, click on the instance name.
  2. Click Web Console.
  3. An interactive graphical VNC/SPICE terminal will open directly in your browser, granting out-of-band console access as if you were physically sitting in front of the machine.

3. Viewing Live Serial Boot Logs​

To diagnose cloud-init provisioning errors or kernel panic states:

  1. In the instance details panel, click Console Log.
  2. The portal displays the serial console stream emitted by the operating system kernel and cloud-init during boot.

Provisioning via Terraform​

You can manage compute instances declaratively using the official Okustera Terraform provider:

# 1. SSH Keypair
resource "openstack_compute_keypair_v2" "deployer" {
name = "deployer-key"
public_key = file("~/.ssh/id_ed25519.pub")
}

# 2. Compute Instance
resource "okustera_compute_instance" "web_server" {
name = "web-server-01"
image_name = "Ubuntu-24.04-LTS"
flavor_name = "m1.medium"
key_name = openstack_compute_keypair_v2.deployer.name
network_id = okustera_network.tenant_vpc.id
security_groups = [
okustera_security_group.web_sg.name
]

user_data = <<-EOF
#!/bin/bash
apt-get update && apt-get install -y nginx
systemctl enable --now nginx
EOF
}

# 3. Associate Public Floating IP
resource "okustera_floating_ip" "web_fip" {
pool = "public_external"
}

resource "okustera_floating_ip_associate" "web_fip_assoc" {
floating_ip = okustera_floating_ip.web_fip.address
instance_id = okustera_compute_instance.web_server.id
}

Managing Instances via CLI​

# List instances in current project
openstack server list

# Launch an instance with keypair and private network
openstack server create --image "Ubuntu-24.04-LTS" \
--flavor m1.medium \
--key-name deployer-key \
--network tenant-vpc \
web-server-01

# Trigger a soft reboot
openstack server reboot web-server-01

# View serial console boot logs
openstack console log show web-server-01

# Get interactive VNC console URL
openstack console url show web-server-01

REST API Reference​

  • GET /api/v1/compute/instances — List all instances in current tenant project.
  • POST /api/v1/compute/instances — Launch a new VM instance.
  • GET /api/v1/compute/instances/{id} — Inspect instance state, IP addresses, and flavor.
  • DELETE /api/v1/compute/instances/{id} — Terminate and delete an instance.
  • POST /api/v1/compute/instances/{id}/action — Execute lifecycle action (reboot, start, stop, pause, unpause, rebuild).
  • GET /api/v1/compute/instances/{id}/console — Retrieve interactive VNC/SPICE console URL.
  • GET /api/v1/compute/instances/{id}/console-log — Retrieve live serial kernel logs.
  • GET /api/v1/compute/flavors — List available compute resource flavors.