概述

kubernetes中文文档:https://kubernetes.io/zh/docs/home/
kubernetes中文社区:https://www.kubernetes.org.cn/docs

kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:

  • 自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器;
  • 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整;
  • 服务发现:服务可以通过自动发现的形式找到它所依赖的服务;
  • 负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡;
  • 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本;
  • 存储编排:可以根据容器自身的需求自动创建存储卷;

组件

一个kubernetes集群主要是由控制节点(master)、**工作节点(node)**构成,每个节点上都会安装不同的组件。如下图:

  • master:集群的控制平面,负责集群的决策 ( 管理 )

    kube-apiserver : API 服务器是 Kubernetes 控制面的前端;资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制

    kube-scheduler(决策者) : 负责集群资源调度的决策,按照预定的调度策略将Pod调度到相应的node节点上;

    kube-controller-manager(调度者) : 运行控制器进程的控制平面组件;负责维护集群的状态和资源的调度,比如程序部署安排、故障检测、自动扩展、滚动更新等;

    cloud-controller-manager:云控制器管理器是指嵌入特定云的控制逻辑的 控制平面组件。

    Etcd :兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。负责存储集群中各种资源对象的信息

  • node:集群的数据平面,负责为容器提供运行环境(执行)

    Kubelet(节点管理者) : 一个在集群中每个节点(node)上运行的代理。 它保证容器(containers)都 运行在 Pod 中;负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器

    KubeProxy(通信入口) : kube-proxy 是集群中每个节点上运行的网络代理,负责提供集群内部的服务发现和负载均衡

    Docker : 负责节点上容器的各种操作;

举例表明kubernetes各个组件之间的工作模式:

以部署一个nginx服务来说明kubernetes系统各个组件调用关系:

  1. 首先要明确,一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中;

  2. 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件;

  3. apiServer组件会调用scheduler组件来决定到底应该把这个服务安装到哪个node节点上;

    在此时,它会从etcd中读取各个node节点的信息,然后按照一定的算法进行选择,并将结果告知apiServer;

  4. apiServer调用controller-manager去调度Node节点安装nginx服务

  5. kubelet接收到指令后,会通知docker,然后由docker来启动一个nginx的pod;

    pod是kubernetes的最小操作单元,容器必须运行在pod中;

  6. 一个nginx服务就运行了,如果需要访问nginx,就需要通过kube-proxy来对pod产生访问的代理;

【Kubernetes系列】Kubernetes组件介绍相关推荐

  1. Kubernetes系列之Helm介绍篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...

  2. (转帖)开源容器集群管理系统Kubernetes架构及组件介绍

    最近在搞Docker还有她的管理工具,选型Kuberetes后,被她的术语和概念搞得晕头转向...看了一篇文章还不错,放到这里分享出来. 地址:http://www.linuxidc.com/Linu ...

  3. 开源容器集群管理系统Kubernetes架构及组件介绍

    Together we will ensure that Kubernetes is a strong and open container management framework for any ...

  4. kubernetes各组件介绍

    文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...

  5. 从0到1使用Kubernetes系列(四):搭建第一个应用程序

    上一篇文章<从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群>中,我们搭建了一套Kubernetes集群,接下来将在本文中介绍如何使用Kubern ...

  6. Kubernetes系列之五:使用yaml文件创建service向外暴露服务

    系列链接 Kubernetes系列之一:在Ubuntu上快速搭建一个集群Demo Kubernetes系列之二:将Slave节点加入集群 Kubernetes系列之三:部署你的第一个应用程序到k8s集 ...

  7. JAVA网格化服务架构,高级进阶必看 Java服务网格化系列-Kubernetes

    Java开发的前景毋庸置疑,一直处于编程排行榜首位的Java语言,吸引越来越多的年轻人去学习这门有含金量的技术,对于有基础的学习者或者开发者来说,进阶学习更深入的知识对未来的职业发展非常有帮助,然而能 ...

  8. 【云原生Kubernetes系列第五篇】kubeadm v1.20 部署K8S 集群架构(人生这道选择题,总会有遗憾)

    系列文章目录 ??即日起,更新云原生相关知识,喜欢的小伙伴可以给我点个三连喔 ??收录至专栏 云原生 ??[云原生Docker系列第一篇]Docker镜像管理 ??[云原生Docker系列第二篇]Do ...

  9. kubernetes布署方式介绍

    系列文章目录 Kubernetes介绍 文章目录 系列文章目录 前言 kubenetes集如布署方式 一.kubeadm 二.二进制包 三.minikube方式布署 四.kind方式布署 五.yum安 ...

最新文章

  1. intellij 打开node项目 一直停留在scanning files to index....,或跳出内存不够的提示框...
  2. 参观 Google 总部是一种什么体验?
  3. golang中的互斥锁
  4. 独立于三大FPGA平台采用modelsim仿真
  5. 如果你很迷茫,就好好读读这8句话
  6. 网页搜索怎么显示排名_深圳seo搜索排名优化效果怎么样
  7. [vue] 分析下vue项目本地开发完成后部署到服务器后报404是什么原因呢?
  8. mysql 3_mysql3
  9. 已达成计算机的连接数最大值无法再,已达到计算机的连接数最大值,无法再同此远程计算机连接...
  10. leetcode 859 亲密字符串
  11. 操作系统之伙伴堆实现
  12. web服务器去掉域名www的301重定向设置方法
  13. ae效果英文版翻译对照表_AE特效菜单中英文对照
  14. iec611313标准下载_IEC611313标准及其实现
  15. 基金A类和C类的科普贴
  16. 力扣网-罗马数字转整数
  17. Linux之宝塔面板安装和使用
  18. 蚂蚁分类信息系统伪静态规则设置教程
  19. leetcode:77.组合
  20. leetcode第188场周赛20200510

热门文章

  1. C# GDI+ 文字操作
  2. 整合Flex和Java(上)
  3. 网 络 欺 骗 技 术
  4. Golang Web入门(4):如何设计API
  5. Docker系列一 ~docker的安装
  6. document.referrer已经可以用于统计搜索来源
  7. 在CentOS 6上使用yum安装lnmp服务
  8. 手册中数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留的理解
  9. PHP CodeBase: 判断用户是否手机访问
  10. header中Content-Disposition的作用