K8S

Hello Kubernetes

Introduction of Kubernetes

Posted by Vincent on August 14, 2020

Background

以往的大型单体应用由于无法频繁迭代、独立开发等原因,正逐渐被拆分成小的、可独立运行的组件,我们称之为微服务

微服务彼此之间解耦,所以具备独立开发、部署、升级、伸缩等优点,使得我们可以对每一个微服务实现快速迭代,并且迭代速度与市场需求变化速度保持一致。

但是随着部署组件的增多,配置、管理并保持系统的正常运行变得越来越困难。手动做所有的事情,显然不太可行。于是我们需要一些自动化的措施,包括自动调度、配置、监管和故障处理。这正是Kubernetes的用武之地。

Evolution of application deployment

  1. 组件之间紧密耦合在一个单体应用中。但是这种方式不利于开发、部署、扩展。
    • 开发 : 容易发生依赖冲突。
    • 部署 : 哪怕一个小功能都要整个系统停机更新。
    • 扩展 : 只能针对整个系统。
  2. 将复杂的单体应用拆分为小的可独立部署的微服务组件。并通过网络通信。
    • 开发 : 可以自己选择合适的依赖。
    • 部署 : 粒度更细,只需要部署需要改变的服务。
    • 扩展 : 粒度更细,可以针对单个服务进行扩展。

What is Kubernetes

Kubernetes是希腊语中的 “领航员” 或 “舵手” 的意思,我们一般简称它为K8S (因为K和S之间有8个单词)。

它抽象了数据中心的硬件基础设施,使得对外暴露的只是一个巨大的资源池。它让我们在部署和运行组件时,不用关注底层的服务器。

使用K8S部署多组件应用时,它会为每个组件都选择一个合适的服务器,部署之后它能够保证每个组件可以轻易地发现其他组件,并彼此之间实现通信。

All in all, K8S帮助企业标准化了无论是云端部署还是内部部署的应用交付方式。

Benefit of Kubernetes

  • 让开发者可以脱离运维团队的帮助,自主部署应用
  • 监控整个系统。让系统管理员的重心从监管应用转移到了监管Kubernetes。