What is Google Kubernetes?

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

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.

What is Cosmos?

Overview of a multi-language offline collection of programming solutions
12 October

Cosmos is your personal offline collection of every algorithm and data structure one will ever encounter and use in a lifetime. This provides solutions in a various languages spanning CC++JavaPythonGo and others.

This work is maintained by a community of hundreds of people and is a massive collaborative effort to bring the readily available coding knowledge offline.

Main purpose of Cosmos is to make coding possible offline. 

Many coders ask me how to improve their own performances. I cannot say anything except "solve and review and prepare your library.
 

Uwi Tenpen

HC 2016 Finalist / Yandex Algorithm 2015,2016 Finalist / CodeChef Snackdown 2015,2016 Finalist Java/Python/Bash

Cosmic Structure

Following is the high-level structure of cosmos:

  • Backtracking
  • Bit manipulation
  • Computational geometry
  • Data structures
  • Divide conquer
  • Dynamic programming
  • Graph algorithms
  • Greedy algorithms
  • Mathematical algorithms
  • Randomized algorithms
  • Search
  • Sorting
  • String algorithms
  • Unclassified

Each type has several hundreds of problems with solutions in several languages spanning CC++JavaPythonGo and others.

The project is complitely community-driven and has 300 active contributors at GiHub