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 Name | vCPU | RAM | Root Disk | Recommended Workloads |
|---|---|---|---|---|
m1.tiny | 1 | 512 MB | 1 GB | Lightweight test agents, DNS forwarders |
m1.small | 1 | 2 GB | 20 GB | Microservices, bastion hosts, dev servers |
m1.medium | 2 | 4 GB | 40 GB | Web apps, CI/CD runners, small databases |
m1.large | 4 | 8 GB | 80 GB | Production web services, medium databases |
m1.xlarge | 8 | 16 GB | 160 GB | Enterprise 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
- Navigate to Compute $\to$ Instances in the left sidebar.
- 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.
- Name: Enter a hostname (e.g.
- 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):
- In the Instances list, click on the instance name.
- Click Web Console.
- 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:
- In the instance details panel, click Console Log.
- 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.