Kubernetes组件和架构简介
作者:树下一少年
一.概念简介
1.含义:
Kubernetes是google开源的容器编排工具,本质是一组服务器集群,在集群的各个节点上运行程序来进行容器进行管理,最终实现资源管理智能化、自动化。
2.主要功能:
(1)新容器能够迅速接替崩溃容器,自我修复能力强。
(2)灵活性强,可以对运行容器的数量进行个性调整,也可以退回旧版本,支持横向扩容和整体迁移。
(3)可以自主去发现依赖的服务。
(4)多个容器启动时,自动实现处理请求的负载均衡。
(5)可创建存储卷来根据需求对容器进行存储。
3.相关概念:
(1)master
集群控制节点,至少需要一个master节点。
(2)node
工作负载节点,是由master分配容器到node上,node上的docker在进行运行容器。
(3)pod
kubernetes的最小控制单元,容器运行在其中,一个pod可以有1个或多个容器。
(4)label
通过对标签对pod进行分类,同一类pod有相同标签。
(5)namespace
用来隔离pod的运行环境。
二.组件和架构介绍
1.master:集群的控制平面,管理集群
(1)ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、注册等功能,可以通过REST调用、Kubectl命令行界面或者Kubeadm等来访问。需要安装某个服务时,安装请求会首先发送到master节点上的ApiServer。
(2)Scheduler:监视来自ApiServer的新请求,进行集群资源调度,按照策略将Pod调度到最适合的node节点上。安装请求发送到ApiServer后右Scheduler进行选择(在etcd中获取node节点性能等信息并通过算法进行选择)将服务安装到哪个node节点。
(3)Controller-manager:维护集群状态,故障检测等等。ApiServer调用Controller-manager来调度node节点去安装这个服务。
(4)etcd:存储集群中对象的信息(类似于数据库)。在kubernetes启动后,master和node的信息都会存储到这里。
2.node:集群的数据平面,为容器提供工作环境
(1)Kubelet:维护容器的生命周期,控制docker来对容器进行创建删除等操作。Kubelet接收到安装指令后通知docker,由docker去启动用于这个服务的Pod,容器在此Pod中运行。
(2)Kubeproxy:提供集群内部的服务发现情况和负载调度。通过Kubeproxy对此服务进行访问。
(3)Docker:负责节点上的容器的相关操作
(4)其他组件
kube-dns:我整个集群提供dns服务
ingress controller:为服务提供外网入口
heapster:提供资源监控
dashboard:提供GUI界面
fluentd-elasticsearch:集群日志采集、存储和查询
3.kubernetes简单架构图解
到此这篇关于Kubernetes组件和架构简介的文章就介绍到这了,更多相关Kubernetes组件和架构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!