1 Kubernetes介绍

单词:Kubernetes这个单词起源于希腊语,意为舵手或领航员,K8S即为缩写,其中8代表了“ubernete“这8个字符。
来源:K8S前身是Google的Borg系统,2014年6月开源,2015年7月 K8S v1.0正式发布;

1.1 概念

  Kubernetes(K8S)是一个软件系统,允许用户在其系统上部署和管理容器化的应用。
  Kubernetes是一种容器集群的管理系统,提供应用部署、维护、扩展机制等功能。
  K8S是2014年由Google公司启动;
  Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.

From:https://kubernetes.io/

  K8S是一个全新的基于容器技术的分布式架构领先方案,属于Borg的一个开源版本,是大规模集群管理系统,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。
  K8S是一个开放的开发平台,不局限于一种语言,没有限定任何编程接口,可以用Java、Go、C++或者Python编写服务,这些都可以被映射为K8S的服务,并通过标准的TCP通信协议进行交互。
  K8S也是一个完备的分布式系统支撑平台,具备集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建的智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。

1.2 主要功能

1) 完备的集群管理:能管理成百上千的容器。
2)故障发现和自我修复:发现容器挂了,可以重新启动容器,来保障服务的正常运行。
3)服务发现和负载均衡:通过服务发现去发现容器,如Service资源,它是对外提供一个固定的地址。
4)服务滚动升级:容器存在不同的版本,可以通过一个一个的去将容器升级到需要的版本。
5)弹性伸缩和在线扩容能力:弹性伸缩是一种后台自动的扩容和缩容(比如K8S监控容器的cpu负载较高,会去增加一些容器),在线扩容是人工交互的一种扩容,人为的通过K8S增加容器的个数去扩容。

2 Kubernetes核心功能

by Kubernetes in Action

  整个系统由一个主节点+多个工作节点组成,开发者把一个应用列表提交到主节点,K8S将其部署到集群的工作节点,开发者和系统管理员无需关注部署到哪个工作节点。

3 节点类型

  • 主节点:承载着K8s控制和管理整个集群系统的控制面板;负责管理集群,提供集群的资源数据访问入口。
  • 工作节点:运行用户实际部署的应用;

3.1 控制面板(master)

  控制面板用于控制集群并使它工作。其组件持有并控制集群状态,但应用程序的运行是由工作节点完成。

  • API Server:用户及其他组件都需要与之通信,其提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • etcd:一个可靠的分布式数据存储,可以持久化存储集群配置,保存整个集群的状态;
  • Controller Manager:负责维护集群的状态,如故障检测、自动扩展、滚动更新等;
  • Scheduler:负责资源的调度;(为应用的每个可部署组件分配一个工作节点)

3.2 工作节点

  工作节点是运行容器化应用的机器,node是K8S集群架构中运行pod的服务节点。其中pod是K8S调度的最小颗粒,不是单纯的容器,是一个或多个容器的组合,是抽象成一个pod,pod 是一个可以被构建、销毁、调度、管理的最小的部署单元。

  • Kubelet:负责维护容器的生命周期,与API服务器通信,并管理它所在节点的容器;
  • Container runtime:负责镜像管理以及Pod和容器的真正运行,如docker等容器类型;
  • Kube-proxy:负责组件之间的服务发现和负载均衡网络流量;

3.3 工作流程

1、准备包含应用程序的Deployment的yml文件,然后通过kubectl客户端工具发送给ApiServer。
2、ApiServer接收到客户端的请求并将资源内容存储到数据库(etcd)中。
3、Controller组件(包括scheduler、replication、endpoint)监控资源变化并作出反应。
4、ReplicaSet检查数据库变化,创建期望数量的pod实例。
5、Scheduler再次检查数据库变化,发现尚未被分配到具体执行节点(node)的Pod,然后根据一组相关规则将pod分配到可以运行它们的节点上,并更新数据库,记录pod分配情况。
6、Kubelete监控数据库变化,管理后续pod的生命周期,发现被分配到它所在的节点上运行的那些pod。如果找到新pod,则会在该节点上运行这个新pod。
7、kube-proxy运行在集群各个主机上,管理网络通信,如服务发现、负载均衡。当有数据发送到主机时,将其路由到正确的pod或容器。对于从主机上发出的数据,它可以基于请求地址发现远程服务器,并将数据正确路由,在某些情况下会使用轮循调度算法(Round-robin)将请求发送到集群中的多个实例。

4 Kubernetes运行应用

在K8s中运行应用
1)将应用打包进一个或多个容器镜像;
2)将镜像推送到镜像仓库中;
3)将应用的描述发布到Kubernetes API服务器;
4)在向K8s提交描述符之后,将把每个pod的指定副本数量调度到可用的工作节点上;
5)节点上的Kubelets将告知Docker从镜像仓库中拉取容器镜像并运行容器;
6)应用程序运行后,K8s就不断地确认应用程序的部署状态始终与所提供的描述相匹配。

故障处理
1)如果运行的实例中挂了一个,如当前进程崩溃或停止响应,K8s将自动重启该实例;
2)如果整个工作节点死亡或无法访问,则K8s将为在故障节点上运行的所有容器选择新节点,并在新节点上运行这些容器。

5 Kubernetes优势

1、 简化应用程序部署
  K8s将所有工作节点公开为一个部署平台,应用程序开发人员可自行部署应用程序,这些节点都是一组等待应用程序使用它们的计算资源,开发人员无需关注应用程序在何处运行,只需要这些资源足够即可。

2、更好利用硬件
  通过使用容器,不再用将应用绑定到一个特定的集群节点上,而是允许应用程序在任何时间都在集群中自由迁移,K8s运行应用程序时,其根据应用程序的资源需求描述和每个节点的可用资源选择最合适的节点来运行应用程序。在集群上移动应用程序的能力,可以更好的利用底层基础设施。

3、健康检查和自修复
  K8s监控应用程序组件和所运行的节点状态,当节点出现故障或不可访问时,K8s将自动调度其他节点来运行这些应用程序。便于运维团队更好的选择合适的时机去修复这些故障节点,而无需迁移应用程序。

4、自动扩容
  K8s监控每个应用程序的使用资源情况,不断调整每个应用程序的运行实例数量,可以根据部署的应用程序的需要自动地将整个集群规模放大或缩小。

5、简化应用部署
  对于开发人员,应用程序开发和生产流程中都运行在同一个环境中,有助于在开发阶段就发现bug而不会在生产流程中出现该bug。应用程序可以直接查询K8s API服务器从而获得该信息和其他信息。

总结:
1)K8s将整个数据中心暴露为用于运行应用程序的单个计算资源;
2)开发人员可以通过K8s部署应用程序,而无需系统管理员的任何帮助;
3)通过让K8s自动处理故障节点,自动调度新节点运行应用程序,系统管理员处理故障节点的时间不受限制;

6 相关术语

6.1 Pods

Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统。

6.2 Service

稳定地提供服务需要服务发现和负载均衡能力。

6.3 Labels

键值对,与某种资源关联以提供标识定位能力的属性。

6.4 Deployment

Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一个版本(成功/稳定)等功能。

6.5 Volumes

用于存储持久化数据,不同类型的Volume有不同的生命周期,其中Pv可以脱离Pod的生命周期存在从而可以支撑需要长久保存的数据。

6.6 Kubernetes StatefulSet

保持状态,包括稳定的网络标识,持久化卷;有序的启动、销毁和滚动升级。

Kubernetes-基本介绍/核心功能/相关术语(一)相关推荐

  1. SQL全方位攻略:之数据库历史、数据库基本概念和相关术语,以及常见的数据库类型介绍

    文章目录 1.数据库介绍 1.1 数据库历史 1.2 数据库基本概念和术语 1.2.1. 数据库 1.2.2. 数据库管理系统(DBMS) 1.2.3. 应用程序 1.2.4. 模式(Schema) ...

  2. Array王锐大神力作:osg与PhysX结合系列内容——第1节 PhysX核心功能及基本程序结构介绍

    [Array王锐大神力作]osg与PhysX结合系列内容--PhysX核心功能及基本程序结构介绍 本节内容 下载和编译PhysX PhysX的核心功能 PhysX的基本程序结构 PhysX与OSG结合 ...

  3. 解密电商系统-Spring boot快速开始及核心功能介绍(下)

    上次说了Spring boot快速开始及核心功能介绍,本次说说配置文件相关的. Spring Boot属性配置文件详解(一) 修改端口 # application.properties: server ...

  4. RabbitMQ核心功能介绍

    RabbitMQ核心功能 一.MQ的概念与功能介绍 二.RabbitMQ的介绍和入门案例 三.RabbitMQ的工作队列 四.RabbitMQ的工作模式 五.RabbitMQ的发布确认 六.Rabbi ...

  5. 亚马逊FBA相关术语介绍

    围绕FBA服务的相关术语很多,以下挑选比较常见和使用频率较高的术语进行介绍. 1.FBM FBM全称为Fulfillment by Merchants,即卖家自己配送在亚马逊销售的订单,亚马逊只作为销 ...

  6. Easy-Es核心功能深度介绍

    背景: 近期随着项目开源后热度的不断上涨,越来越多小伙伴开始对框架核心功能感兴趣,今天就让我带大家深入源码和架构,一起探索Easy-Es(简称EE)的核心功能是如何被设计和实现的. 和众多ORM框架一 ...

  7. LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(四)之ASP.NET SignalR核心功能介绍

    前言 本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能.源代码不包含LayIM的源代码,因为官方并没开源属于收费资源, ...

  8. Cheat Enginee(CE)的保姆级详细使用指南~(下载安装与汉化+核心功能介绍)

    目录 一.下载与安装说明 1.下载与安装 2.汉化 二.核心功能详细说明 主界面基本介绍 1.扫描并打开进程 2.扫描类型 (1)精确数值扫描 (2)值大于- (3)值小于- (4)值介于-两者之间 ...

  9. 示波器 - 相关术语介绍

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

最新文章

  1. windows2008 R2 如何建立FTP站点
  2. C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式
  3. 开源Delphi:AutoCHM:CHM生成和还原Html工具
  4. TensorFlow学习笔记(二十六)CNN的9大模型之LeNet5的原理讲解
  5. linux之lrzsz
  6. 【渝粤题库】广东开放大学 面向对象方法精粹 形成性考核
  7. 送书 | 一本针对零基础 AI 学习的书:Python入门到人工智能实战
  8. centos/Linux 解决使用sudo命令时xxx is not in the sudoers file.This incident will be reported
  9. 计算机课堂听课情况记录表模板,【教师听课记录表】_教师听课评课记录表模板Word版...
  10. 计算广告学-学习笔记
  11. addon游戏_MOD Simple Shader addon
  12. 将Twitter4j与Scala结合使用以执行用户操作
  13. windows 7不能安装谷歌浏览器怎么办?
  14. 第二篇:Haploview做单倍型教程2--分析教程
  15. 行人重识别(ReID) ——数据集描述 DukeMTMC-reID
  16. impala查询报错问题 EOFException: Cannot seek after EOF 求解
  17. java实现excel导入导出(jxl),Java入门你值得拥有
  18. SQL 中的LTRIM()和RTTIM()的用法
  19. 超详细配置pip豆瓣镜像高速下载
  20. 用计算机选出彩票号码最少的号码,购买彩票时,很多人往往愿意自己选号,不愿交由电脑随机选号...

热门文章

  1. 2021.08.22学习内容torch.cat()和torch.stack()函数
  2. for _ in range(10)中 _ 的作用
  3. elementUI日期选择器:仅设置可选择时间区间
  4. linux目标机无法连接到网络,linux 安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝...
  5. 两列数据找出相同项自动对应_关于数据核对的6个超级技巧,用过的人都说好...
  6. 萝卜源码前后端源码+打包APP的教程
  7. DHPST云主机分销系统源码
  8. 快约 - PHP社交约会平台源码开心版
  9. 苹果cms对接影视小程序源码完整源码
  10. FLY主题下载插件兼容php7适配emlog6.1.1