What is Google Kubernetes?

Overview of open-source cluster management project by Google
10 August 2017   2044

What is Kubernetes?

Kubernetes is an open source project designed to manage a cluster of Linux containers as a single system. Kubernetes manages and runs Docker containers on a large number of hosts, and also provides the co-location and replication of a large number of containers. The project was launched by Google and is now supported by many companies, including Microsoft, RedHat, IBM and Docker. It is written in Golang and is lightweight, modular, portable and extensible.

Google has been using container technology for more than a decade. It started with the launch of more than 2 billion containers in one week. With the help of the Kubernetes project, the company shares its experience in creating an open platform designed for scalable container launch.

The project has two goals. If you use Docker containers, the following question arises - how to scale and launch containers directly on a large number of Docker hosts, and how to balance them? The project proposes a high-level API that defines the logical grouping of containers, which allows you to define container pools, load balances, and specify their allocation.

Kubernetes concepts

  • pods — a way to group containers together
  • replication controllers — a way to handle the lifecycle of containers
  • labels — a way to find and query containers, and
  • services — a set of containers performing a common function.
  • volumes (volumes.md):  a directory, possibly with data in it, which is available in the container.
  • labels (labels.md): key / value pairs that are attached to objects, for example pods. Labels can be used to create and select sets of objects.
  • kubectl Command Line Interface (kubectl.md): kubectl command line interface for managing Kubernetes.

Kubernetes architecture

The working Kubernetes cluster includes the agent running on the nodes (kubelet) and the wizard components (APIs, scheduler, etc), over the distributed storage solution.

Kubernetes Architecture
Kubernetes architecture

The above scheme shows the desired state, in the final analysis, although some work is still under way, for example: how to make the kubelet (all components, in fact) run independently in the container, which will make the scheduler 100% pluggable.

Learn how Kubernetes works in real life situations.

ClusterFuzz to be Open Source Now

Program's code is written in Python and Go, and distributed under the Apache 2.0 license
08 February 2019   229

Google has opened the source code for the ClusterFuzz platform, intended for fuzzing code testing using a server cluster. In addition to coordinating the execution of checks, ClusterFuzz also automates the execution of tasks such as sending a notification to developers, creating an application for a patch (issue), tracking a bug fix, and closing reports after a patch. The code is written in Python and Go, and distributed under the Apache 2.0 license. ClusterFuzz instances can run on Linux, macOS and Windows systems, as well as in various cloud environments.

Since 2011, ClusterFuzz has been used in the depths of Google to detect errors in the Chrome codebase and to ensure the operation of the OSS-Fuzz project, in the framework of which continuous fuzzing testing of open source software was organized. In total, ClusterFuzz has revealed more than 16 thousand errors in Chrome and more than 11 thousand errors in 160 open source projects participating in the OSS-Fuzz program. Due to the continuous process of checking the current code base, errors are usually caught within a few parts after the code is introduced and the changes causing them.