Skip to content

Single VM Setup (POC Only)#

⚠️ NOT PRODUCTION READY - This setup uses a single VM with K3s (lightweight Kubernetes) and is intended for proof-of-concept and evaluation purposes only. It does not provide high availability, failover, or rolling maintenance capabilities. For production deployments, use a production Kubernetes cluster - either a new RKE2 multi-node cluster or an existing standard cluster.

This guide walks through deploying Ametnes Platform services on a single Ubuntu VM with K3s. It is designed for DevOps engineers, system administrators, or technical teams evaluating the platform in their own environment.

Prerequisites#

Requirement Specification
OS Ubuntu 20.04 LTS or later
CPU 2 vCPUs minimum
RAM 8 GB minimum
Storage 100 GB minimum
Network Open ports for SSH (22) and HTTPS (443)

You also need:

  • SSH access to the VM with sudo privileges
  • A public IP address (or private IP for on-premise) reachable from the Ametnes control plane
  • A static/reserved IP assigned to the VM (cloud VMs may get a new IP on reboot)

Step 1: Sign Up#

Create a free Ametnes Platform account at https://cloud.ametnes.com. No credit card required.

Step 2: Provision the VM#

Provision an Ubuntu 20.04 LTS (or later) VM meeting the specifications above. Ensure firewall rules allow SSH and HTTPS traffic.

Step 3: Install K3s and the Ametnes Cloud Agent#

3.1 SSH into the VM#

ssh ubuntu@<your.vm.ip.address>

3.2 Get your Location UUID#

  1. Log in to your Ametnes Platform account
  2. Navigate to Service Locations in the left menu
  3. Copy the default location's UUID

3.3 Run the setup script#

Run the setup script as a single command, replacing <your.vm.ip.address> and <location-uuid> with your values:

curl -fsSL https://ametnes-assets.lon1.digitaloceanspaces.com/packages/setup-k3s.sh | bash -s -- --ip-address <your.vm.ip.address> --location-id <location-uuid>

Use the public IP for cloud VMs or private IP for on-premise environments.

Optional: run the script as root

The setup script installs K3s system-wide and raises kernel sysctl limits, so it needs root. If your user is not root (for example a cloud VM's default ubuntu account), or you see sysctl: permission denied on key "fs.inotify.max_user_instances", ignoring, elevate the shell:

curl -fsSL https://ametnes-assets.lon1.digitaloceanspaces.com/packages/setup-k3s.sh | sudo bash -s -- --ip-address <your.vm.ip.address> --location-id <location-uuid>

Apply sudo to bash, not curl. Running sudo curl ... | bash elevates only curl and leaves the script running as your normal user, which is what produces the sysctl permission errors and prevents K3s from installing.

After a short while, the location will appear online in your Ametnes Platform console.

Step 4: Deploy a Service#

  1. Navigate to the Services dashboard using the left menu
  2. Click New Service
  3. Filter for a service (e.g., Open WebUI) and select Create
  4. Fill in the form:
  5. Name: e.g., OpenWebUI-POC
  6. Description: Optional description
  7. Version: Select a version from the list
  8. Location: Select your configured location
  9. Configure any service-specific settings
  10. Click Create

Step 5: Test Connectivity#

  1. Navigate to the Services dashboard
  2. Wait for the service status to change to ready
  3. Click the Admin button to view service details
  4. Copy the endpoint, username, and password
  5. Open the service URL in your browser and log in

Step 6: Clean Up#

When done testing, delete services from the Admin section of each service to free up resources.

Using a Production Cluster#

If you already have a Kubernetes cluster (EKS, AKS, GKE, ACK, on-premise RKE/RKE2, etc.) instead of provisioning a new VM, see Production Kubernetes Cluster Setup.