Installing Anthos clusters on KVM

Hil Liao
3 min readApr 23, 2023

Preface

In 2022, I worked on a Google Cloud Professional Services funded project at a Google Cloud service partner company to modernize a client’s monolithic application to containers running in Anthos clusters on bare metal. The client had already broke the monolithic retail oriented application into microservices. The goal of the project was to deploy the microservices to a Google Cloud distributed edge product based on Anthos clusters on bare metal. The specifications from Google were 3 standalone clusters, edge profile, HA mode.

The name of the edge product was confidential and not publicly available on Google Cloud documentation but many large restaurant operators and retailers were using it.

Introduction

The code base of the confidential platform product isn’t available to share but the whole setup was based on Anthos clusters on bare metal. I want to show how to install Anthos clusters on bare metal using a single node on Ubuntu Linux KVM. The Google cloud documentation to install Anthos clusters on bare metal was not robust so I had to resolve error messages myself to keep installation going.

Installation

I shared the technical content in the bmctl-workspace github page. At the end of the installation and setup, you should see the following in the cloud console:

GKE page

The VM on KVM’s htop command screenshot

htop

Running passmark benchmark software on a gcloud pod generated the following results. Keep in mind that the results are not testing the 2 vCPUs thoroughly as Kubernetes has processes like kube-apiserver to occupy about a quarter of both vCPUs constantly. Running benchmark software on a cluster with more vCPUs would make the result closer to a production environment. You’d want to adjust the resource limit on the pod to be less than the vCPUs and memory available.

BaselineInfo:
WebDBID: -1
TimeStamp: 20230422235949
Version:
Major: 10
Minor: 2
Build: 1002
SpecialBuildName: ""
ptArchitecture: x86_64_linux
Results:
Results Complete: true
NumTestProcesses: 2
CPU_INTEGER_MATH: 10133.546
CPU_FLOATINGPOINT_MATH: 7518.1591433831936
CPU_PRIME: 36.286836242361801
CPU_SORTING: 5578.6178392035308
CPU_ENCRYPTION: 2531.6219180492635
CPU_COMPRESSION: 32430.207516489358
CPU_SINGLETHREAD: 2385.2142201259248
CPU_PHYSICS: 556.54423724966796
CPU_MATRIX_MULT_SSE: 3610.5503528441727
CPU_mm: 428.68708968107774
CPU_sse: 1603.502994069752
CPU_fma: 5833.3708041772188
CPU_avx: 3394.7772602855475
CPU_avx512: 0
m_CPU_enc_SHA: 3747680226.2338624
m_CPU_enc_AES: 2212898012.42838
m_CPU_enc_ECDSA: 2003215714.3590322
ME_ALLOC_S: 0
ME_READ_S: 0
ME_READ_L: 0
ME_WRITE: 0
ME_LARGE: 0
ME_LATENCY: 0
ME_THREADED: 0
SUMM_CPU: 4140.8256443159953
SUMM_ME: 0
SystemInformation:
OSName: Debian GNU/Linux 11 (bullseye)
Kernel: 5.4.0-147-generic
Device: ""
Processor: AMD Ryzen Threadripper PRO 3945WX 12-Cores
NumSockets: 2
Manufacturer: AuthenticAMD
NumCores: 2
NumLogicals: 2
CPUFrequency: 3992
Memory: 5941
MemModuleInfo:
iNumMemSticks: 0

Anthos cluster on bare metal’s pricing is about $50 a month on a pay as you go basis. If you want to save on cost, stop the KVM to avoid the charge.

--

--