WHAT IS KUBERNETES

WHAT IS KUBERNETES

Kubernetes?(/?k(j)u?b?r?n?t?s,?-?ne?t?s,?-?ne?ti?z,?-?n?ti?z/, commonly abbreviated?K8s[3]) is an?open-source?container?orchestration?system for automating?software deployment, scaling, and management.[4][5]?Originally designed by?Google, the project is now maintained by the?Cloud Native Computing Foundation.

The name?Kubernetes?originates from?Greek, meaning 'helmsman' or 'pilot'.?Kubernetes?is often abbreviated as?K8s, counting the eight letters between the?K?and the?s?(a?numeronym).[6]

Kubernetes works with?containerd?and?CRI-O.[7]?Its suitability for running and managing large cloud-native workloads has led to widespread adoption of it in the data center. There are multiple distributions of this platform – from?ISVs?as well as hosted-on-cloud offerings from all the major public cloud vendors.

History[edit]

Google Kubernetes Engine talk at Google Cloud Summit

Kubernetes (κυβερν?τη??kubern?tēs, Greek for "steersman, navigator" or "guide", and the etymological root of?cybernetics)[5]?was announced by Google in mid-2014.[8]?The project was created by Joe Beda, Brendan Burns, and Craig McLuckie,[9][10]?who were soon joined by other Google engineers, including Brian Grant and Tim Hockin.[8]

The design and development of Kubernetes was influenced by Google's?Borg?cluster manager. Many of its top contributors had previously worked on Borg;[11][12]?they codenamed Kubernetes "Project 7" after the?Star Trek?ex-Borg?character?Seven of Nine[13]?and gave its logo a seven-spoked wheel. Unlike Borg, which was written in?C++,[11]?Kubernetes source code is in the?Go?language.

Kubernetes 1.0 was released on July 21, 2015.[14]?Google worked with the?Linux Foundation?to form the?Cloud Native Computing Foundation?(CNCF)[15]?and offered Kubernetes as a seed technology. In February 2016,[16]?the Helm[17][18]?package manager for Kubernetes was released.

Google was already offering managed Kubernetes services, while?Red Hat?was supporting Kubernetes as part of?OpenShift?since the inception of the Kubernetes project in 2014.[19]?In 2017, the principal competitors rallied around Kubernetes and announced adding native support for it:

On March 6, 2018, Kubernetes Project reached ninth place in the list of?GitHub?projects by the number of?commits, and second place in authors and issues, after the?Linux kernel.[25]

Until version 1.18, Kubernetes followed an N-2 support policy, meaning that the three most recent minor versions receive security updates and bug fixes.[26]?Starting with version 1.19, Kubernetes follows an N-3 support policy.[27]?Originally, it interfaced exclusively with the?Docker?runtime[28]?through a "Dockershim"; however, from November 2020[29]?up to April 2022, Kubernetes has deprecated the?shim?in favor of directly interfacing with the container through Containerd, or replacing Docker with a runtime that is compliant with the Container Runtime Interface (CRI).[30][31][32]?With the release of v1.24 in May 2022, "Dockershim" has been removed entirely.[33]

Concepts[edit]

Kubernetes architecture diagram

Kubernetes defines a set of building blocks ("primitives") that collectively provide mechanisms that deploy, maintain, and scale applications based on CPU, memory[34]?or custom metrics.[35]?Kubernetes is?loosely coupled?and extensible to meet different workloads. The internal components as well as extensions and containers that run on Kubernetes rely on the Kubernetes API.[36]?The platform exerts its control over compute and storage resources by defining resources as Objects, which can then be managed as such.

Kubernetes follows the?primary/replica architecture. The components of Kubernetes can be divided into those that manage an individual?node?and those that are part of the control plane.[36][37]

Control plane[edit]

The Kubernetes master node handles the Kubernetes control plane of the cluster, managing its workload and directing communication across the system. The Kubernetes control plane consists of various components, each its own process, that can run both on a single master node or on multiple masters supporting?high-availability clusters.[37]?The various components of the Kubernetes control plane are as follows:

  • etcd[38]?is a persistent, lightweight, distributed,?key-value data store?that?CoreOS?has developed. It reliably stores the configuration data of the cluster, representing the overall state of the cluster at any given point of time. etcd favors consistency over availability in the event of a network partition (see?CAP theorem). The consistency is crucial for correctly scheduling and operating services.
  • The?API server?serves the Kubernetes?API?using?JSON?over?HTTP, which provides both the internal and external interface to Kubernetes.[36][39]?The API server processes and validates?REST?requests and updates the state of the?API?objects in etcd, thereby allowing clients to configure workloads and containers across worker nodes.[40]?The API server


要查看或添加评论,请登录

Ashish Ranjan的更多文章

  • WHAT IS AGILE

    WHAT IS AGILE

    In software development, agile practices (sometimes written "Agile")[1] include requirements discovery and solutions…

  • WHAT IS GCP

    WHAT IS GCP

    Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same…

  • WHAT IS AGILE

    WHAT IS AGILE

    In software development, agile practices (sometimes written "Agile")[1] include requirements discovery and solutions…

  • WHAT IS UNITY 3D

    WHAT IS UNITY 3D

    Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at…

  • WHAT IS SHELL SCRIPTING

    WHAT IS SHELL SCRIPTING

    A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter.[1] The various…

  • WHAT IS API

    WHAT IS API

    An application programming interface (API) is a way for two or more computer programs to communicate with each other…

  • WHAT IS JAVA DEVELOPER

    WHAT IS JAVA DEVELOPER

    Despite its age and legacy, Java remains one of the most popular programming languages to this day. According to a 2021…

  • WHAT IS POWER BI

    WHAT IS POWER BI

    Microsoft Power BI is an interactive data visualization software product developed by Microsoft with a primary focus on…

  • WHAT IS PMO

    WHAT IS PMO

    A project management office (abbreviated to PMO) is a group or department within a business, government agency, or…

  • WHAT IS NETWORKING

    WHAT IS NETWORKING

    A computer network is a set of computers sharing resources located on or provided by network nodes. Computers use…

社区洞察

其他会员也浏览了