Kubernetes集群概述/体系结构/相关核心概念

发布时间:2020-07-05 11:30:06 作者:zjdevops
来源:网络 阅读:751

Kubernetes是什么?

业界简称为:K8S,是首字母和末尾之母之间有8个字母,所以叫K8S,不知为何这样起名?

1、它是一个全新的基于容器技术的分布式架构方案。Kubernetes是谷歌严格保密十几年的秘密武器---Borg的一个开源版本,据说在GG员工都签署了保密协议,即使离职也不能泄露机密(业界大数据框架:Hadoop,也是受GG公开文献启发GFS和BigTable )。

2、若我们的系统设计遵循Kubernetes的设计思想,可以说那些传统系统架构中和业务没有多大关系的底层代码或功能模块,可以消除,我们不必再为应用的负载均衡和部署等问题而烦恼

3、Kubernetes是一个开放的开放平台。有Google、Redhat等开源基础设施的大碗们共同发起了一个为:CNCF(Cloud Native Computing Foundation)的基金会。

4、Kubernetes是一个完备的分布式系统支撑平台。


为什么要用Kubernetes?

1、可以和微服务完美结构,构成微服务架构。

2、K8S内的服务的弹性扩容机制可以应对突发流量

3、K8S架构的灵活及超强的横向扩容能力可以提高我们的竞争力

4、基于容器技术,构建公司DevOps、CI/CD、持续交付,缩短开发周期


Kuberntes的体系架构

下图为K8S的体系架构

Kubernetes集群概述/体系结构/相关核心概念

Kubernetes的主要核心组件:

在上图中的左侧节点则是Master节点,右侧是Node节点:

Master节点的主要作用是控制和管理整个集群的状态并接收外部用户的操作请求。它主要运行三中服务进程,分别是:kube-apiserver、kube-scheduler、kube-controller-manager,具体作用如下:

kube-apiserver是整个Kubernetes集群的核心,也是部署Kubernetes最先启动的组件,其他所有的组件都会在启动时接入这个服务,主要是提供资源操作的统一入口, 通过RestAPI将集群的状态信息存储etcd集群。

主要负责资源的调度,根据集群当前的资源使用情况及复杂的调度算法将Pod调度到适合运行或特定的服务节点上。

kube-controller-manager服务负责管理K8S集群中各种资源的状态,诸如:故障检测、滚动更新等。


Node节点是实际执行用户任务的地方,其上有两种服务进程,分别是:kube-proxy和kubelet,具体作用如下:

设计kube-proxy服务是为了解决从Node节点中的Pod对K8S特定Service访问时的路由问题,每当K8S创建一个Service的Endpoint,各个Node节点上的kube-proxy进程就会修改节点系统的iptables规则,使得当该节点上的Pod访问相应Endpoint的虚拟Ip和端口时,请求会被分发到正确的节点和容器进行处理

kubelet直接负责节点上容器的生命周期,同时也负责Volume和网络(CNI)的管理


其他的核心组件:

etcd:保存集群的状态,整个集群的状态数据都存于此,因此构建K8S集群时,etcd也最好是集群的,同时要对etcd的数据进行备份

Heapster:  提供资源监控

kube-dns:负责为整个集群提供DNS服务

Kuberntes核心概念

在Kubernetes集群中,服务器的角色分为Master和Node,此两种不同角色分别运行着不同的服务进程。

      Labe(标签)其实是一个K-V的键值对形式,用于标记Pod、Node、Namespace或其他任何资源对象的键值对。主要用于在查询或选择时对资源进行条件过滤。








推荐阅读:
  1. 渐进式Web应用程序的深入概述
  2. 微软HPC解决方案概述与实作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s集群 架构 概念 uber kubernetes集群

上一篇:最强最全干货分享:Android开发书籍、教程、工具等

下一篇:OpenStack Train版双节点安装(十三)启动实例

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》