Kubernetes系列第一篇:Kubernetes介绍和名词解释

  

1。Kubernetes简介

  

1.1。什么是Kubernetes

  

kubernetes简称k8(因为k和s之间有8个字母),是谷歌旗下的开源容器编排平台,美丽的诞生深受谷歌内部容器编排系统Borg的影响,k8实现了如下功能

  
自动装箱h5> 建构于容器之上,基于资源依赖及其他约束条件自动完成容器部署

  
自我修复h5> 支持容器故障后自动重启,节点故障后重新调度容器,以及节点健康状态检查失败后关闭容器并重新创建等自我修复机制

  
水平扩展h5> 支持通过命令或UI手动水平扩展,以及基于CPU等资源负载率的自动水平扩展机制

  
服务发现和负载均衡h5> k8通过CoreDNS附件为系统内置了服务发现功能,为每个服务配置DNS名称,并允许集群内的客户端直接使用此名称发出访问请求,服务通过iptables或ipv内建负载均衡机制

  
自动发布和回滚h5> k8支持<代码>灰度>   
秘钥和配置管理h5> 美丽的ConfigMap实现了配置数据与码头工人镜像解耦,需要时仅对配置做出变更而无须重新构建码头工人镜像,这为应用开发和部署带来极大的灵活性
对于应用所依赖的一些敏感数据,如用户名和密码,令牌,密钥等信息,k8提供了秘密对象为其解耦,既便利了应用的快速开发和交付,又提供了一定程度上的安全保障

  
存储编排h5> k8支持Pod对象按需自动挂载不同类型的存储系统,包括节点本地存储,公有云服务商云存储,以及网络存储系统(NFS, Ceph从而等)

  

2。节点和组件

  

一般情况下一个美丽集群由多个<代码>工作节点(工人节点)> 集群控制节点(主)以及一个集群状态存储系统(etcd)组成

  

2.1。主节点

  

主是集群的网关和中枢,负责集群的管理工作,诸如为用户和客户端暴露API,跟踪其他服务器的健康状况,以最优方式调度工作负载,以及编排其他组件之间的通信等任务,它是用户或客户端与集群之间的核心联络点
单个主节点即可完成其所有的功能,但出于冗余及负载均衡等目的,生产环境中通常需要部署多个主节点
主节点主要由apiserver, controller-manager和调度程序三个组件以及一个用于存储集群状态的etcd存储服务组成

  

2.2。节点节点

  

节点是k8集群的工作节点(工人),并接收来自大师的指令并根据指令完成响应操作,如创建或销毁Pod对象,调整网络规则等操作
主节点主要由kubelet, kube-proxy和容器引擎(码头工人是最为常见的容器引擎)组成

  

2.3。主组件

  
集群网关(API服务器)
  

k8集群的网关接口,负责解析客户端的请求

  
集群状态存储(etcd)
  

存放k8持久化数据,提供监听(看)机制,用于监听和推送变更
在k8集群系统中,etcd中的键值发生变化时会通知到API服务器,并由其通过watchAPI向客户端输出。基于看机制k8集群的各组件实现了高效协同

  
调度器(调度器)
  

在用户发出创建舱请求时,调度器根据各节点资源情况,以及容器所需要的资源做出调度决定这个舱将在那个节点上创建

  
控制器管理器(ControllerManager)
  

检查控制器是否处于健康状态

  

2.4。节点组件

  
kubelet
  

负责和主节点进行通信,接收大师调度过来的任务,检查节点上的豆荚是否处于健康状态

  
容器引擎h5> 负责运行容器,目前最为流行的容器引擎为码头工人,k8目前支持Rtk和码头工人两种容器引擎

  
kube-proxy
  

根据服务资源对象生iptables或ipv规则,从而将用户请求转发到指定的豆荚中

  

3。k8术语

  

3.1。豆荚

  

k8并不直接调度容器,而是使用一个抽象的资源对象来封装一个或者多个容器,这个抽象对象被称为吊舱,它也是美丽最小的调度单元
同一舱中的容器共享网络名称空间和存储资源,这些容器可经由本地回环节口罗<代码> 直接通信,但彼此之间又在山,用户以及PID等名称空间上保持隔离
尽管圆荚体中可以包含多个容器,但是作为最小调度单元,它应该尽可能地保持<代码>? Kubernetes系列第一篇:Kubernetes介绍和名词解释