Nourdine Alouane
Nourdine Alouane

Reputation: 814

Confusion about nodes used inside a Google Container Cluster

When a Google Container Engine cluster is created, Container Engine creates a Compute Engine managed instance group to manage the created instances. These instances are from Google Compute engine, which means, they are Virtual machines.

But we read in the doc page: "VMs are heavyweight and non-portable. The New Way is to deploy containers based on operating-system-level virtualization rather than hardware virtualization" isn't a contradiction? correct me if I'm wrong. We use containers because they are extremely fast (either in boot time or tasks execution) compared to VMs, and they save a lot of space storage. So if we have one node(vm) that can supports 4 containers max, our clients can rapidly lunch 4 containers, but beyond this number, gcloud autoscaler will need to lunch a new node(vm) to support upcoming containers, which incurs some tasks delay.

Is it impossible to launch containers over physical machines?

And what do you recommend for running critical time execution tasks?

Upvotes: 1

Views: 87

Answers (2)

Robert Bailey
Robert Bailey

Reputation: 18210

Kubernetes can be installed on both virtual and physical machines (there are multiple getting started guides for bare metal). Google's Cloud Platform only offers virtual machines as a service which is why Google Container Engine is built on top of virtual machines.

Upvotes: 1

Ryan Cox
Ryan Cox

Reputation: 5073

It is definitely possible to launch containers on physical machines. In fact, according to the Borg paper ( the design of which heavily influenced Container Engine/Kubernetes ), this is the norm within Google's own infrastructure:

Each task maps to a set of Linux processes running in a container on a machine [62]. The vast majority of the Borg workload does not run inside virtual machines (VMs), because we don’t want to pay the cost of virtualization. Also, the system was designed at a time when we had a considerable investment in processors with no virtualization support in hardware.

Since Container Engine is hosted within GCP, VMs are used to facilitate dynamic provisioning. However, these VMs are long lived compared to the lifetime of containers scheduled onto them. Pods of containers may be scheduled on and off of these VMs and jobs run to completion. However, VMs are torn down when clusters are upgraded or re-sized.

Upvotes: 3

Related Questions