Kubernetes介绍
1.背景介绍
  云计算飞速发展
    - IaaS
    - PaaS
    - SaaS
  Docker技术突飞猛进
    - 一次构建,到处运行
    - 容器的快速轻量
    - 完整的生态环境
2.什么是kubernetes
  Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
  Kubernetes优势:
    - 容器编排
    - 轻量级
    - 开源
    - 弹性伸缩
    - 负载均衡

•Kubernetes的核心概念
1.Pod
  运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。
2.Replication Controller
  Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。
3.Service
  Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制,用户不需要了解后台Pod是如何运行。
4.Label
  Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的K/V键值对。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。
5.Node
  Node是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或minion)。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。

•Kubernetes架构和组件
架构:

  
主从分布式架构,Master/Node
  - 服务分组,小集群,多集群
  - 服务分组,大集群,单集群
组件:
  Kubernetes Master控制组件,调度管理整个系统(集群),包含如下组件:
  1.Kubernetes API Server
    作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用。维护的REST对象持久化到Etcd中存储。
  2.Kubernetes Scheduler
    为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器。
  3.Kubernetes Controller
    负责执行各种控制器,目前已经提供了很多控制器来保证Kubernetes的正常运行。

   - Replication Controller
    管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定义的副本数量与实际运行Pod数量一致。
   - Node Controller
    管理维护Node,定期检查Node的健康状态,标识出(失效|未失效)的Node节点。
   - Namespace Controller
    管理维护Namespace,定期清理无效的Namespace,包括Namesapce下的API对象,比如Pod、Service等。
   - Service Controller
    管理维护Service,提供负载以及服务代理。
   - EndPoints Controller
    管理维护Endpoints,关联Service和Pod,创建Endpoints为Service的后端,当Pod发生变化时,实时更新Endpoints。
   - Service Account Controller
    管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret。
   - Persistent Volume Controller
    管理维护Persistent Volume和Persistent Volume Claim,为新的Persistent Volume Claim分配Persistent Volume进行绑定,为释放的Persistent Volume执行清理回收。
   - Daemon Set Controller
    管理维护Daemon Set,负责创建Daemon Pod,保证指定的Node上正常的运行Daemon Pod。
   - Deployment Controller
    管理维护Deployment,关联Deployment和Replication Controller,保证运行指定数量的Pod。当Deployment更新时,控制实现Replication Controller和 Pod的更新。
   - Job Controller
    管理维护Job,为Jod创建一次性任务Pod,保证完成Job指定完成的任务数目
   - Pod Autoscaler Controller
    实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作。

  Kubernetes Node运行节点,运行管理业务容器,包含如下组件:
  1.Kubelet
    负责管控容器,Kubelet会从Kubernetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。
  2.Kubernetes Proxy
    负责为Pod创建代理服务,Kubernetes Proxy会从Kubernetes API Server获取所有的Service信息,并根据Service的信息创建代理服务,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟转发网络。
  3.Docker
    Node上需要运行容器服务。

k8s入门系列之介绍篇相关推荐

  1. k8s入门系列之guestbook快速部署

    k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...

  2. RabbitMQ系列笔记介绍篇

    导语 rabbitMQ是市面上应用很广的一种应用间传送数据的通信方式,是由erlang语言开发,主要特点就是异步通信,实现服务与服务之间的解耦. 特点 可靠性:提供了持久化.传输时确认.发布时确认.跟 ...

  3. DotA新手入门系列 新手生存篇

    DotA新手入门系列 新手生存篇 Dota是一局对抗游戏,玩者的目的虽然是击毁敌方的主建筑,但推进的过程必须通过人与人的对抗来实现.说白了,也就是对敌方的杀戮. 新手,就好象是没有上过战场的新兵.你拥 ...

  4. springboot入门系列教程|第九篇:springboot实现图片上传与显示(附源码)

    前言## 上一篇我们介绍了springboot如何实现自定义拦截器配合注解使用,那么这篇我们将介绍springboot实现图片上传的功能. 目录## 文章目录 前言## 目录## 项目创建### 项目 ...

  5. Python入门系列——第14篇

    字典 上篇,我们介绍了列表,在其它的语言中,可能还有更基本的一种数据结构:数组.但在Python里,没有数组只有列表.不过列表比起数组则更加强大.下面,我们看另外一种容器,它叫做字典.它也是pytho ...

  6. C++快速入门|系列(第一篇)

    目录 C语言和C++的区别 C++的特点 OOP是什么? HELLO,WORLD!输出 cout进行标准输出 cin进行标准输入 巩固--挑战习题 结尾 C语言和C++的区别 与C语言不同,C语言是面 ...

  7. K8S入门系列(26)-K8S之Schedule

    Schedule 调度器是主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行. kube-scheduler 是 Kubernetes 集群的默认调度器, ...

  8. python入门系列——第2篇

    python程序的注释 忘了说了,在使用python2的同学可能发现中文出现了错误,没关系,我们在程序最开始加入 一句话,就可以让你含有中文的程序正常运行起来.--:# -*- coding: utf ...

  9. Jenkins 入门系列--jenkins 介绍

    第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目. l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安 ...

最新文章

  1. ajax请求php报500错误,ajax只能发起GET请求,而不能发POST请求,否则报500错误
  2. Hibernate 中Datetime类型属性数据库默认值
  3. 添加日志文件组与日志文件成员
  4. 在Flutter中解析复杂的JSON(一篇顶十篇)
  5. Java客户端操作HBase:创建表代码示例
  6. android 蓝牙headset,android – 如何通过反射使用BluetoothHeadset类
  7. [工具] CuteMarkEd
  8. life of a NPTL pthread
  9. Logstash读取Kafka数据写入HDFS详解
  10. jsp项目连接mysql_JSP程序使用JDBC连接MySQL的教程
  11. WEB应用程序--概述
  12. BXP无盘技术应用于网吧的一些经验(转)
  13. oracle建表的方法,oracle建表语句
  14. 关于生活,你可以选择-转自网络
  15. 新编计算机组装与维护教程,新编计算机组装与维护教程/21世纪高等学校计算机科学与技术规划教材...
  16. 趁阳光正好,趁微风不噪。趁花儿还未开到荼蘼。
  17. cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-buil windows下的解决方案
  18. 电子商务项目设计(案例)
  19. 99条为人处事经典法则剩下的一条由你自己来感悟
  20. LVTTL、LVCOMS、SSTL和HSTL接口简单介绍

热门文章

  1. Adobe推出HTML5动画设计工具Edge
  2. get the better of sb
  3. WIN7 任务栏放右侧 有个BUG
  4. 常见的http状态码(Http Status Code)
  5. 快速开发生命周期支持工具
  6. 《Linux内核原理与分析》第二周作业
  7. sendmail服务器配置过程中出现的一些错误和解决办法
  8. 详细介绍Java垃圾回收机制
  9. 遂宁2017届零诊16题(仅想说明网传答案的不正确)
  10. do{ ...}while(0)应用技巧