2019独角兽企业重金招聘Python工程师标准>>>

kubernetes简介

参考资料:https://yq.aliyun.com/articles/639830
kubernetes正确的发音是[kubə’netis],读音:库伯耐踢死,
官方原文是:K8s is an abbreviation derived by replacing the 8 letters “ubernete” with 8
kubernetes缩写为k8s,意思就是k后面跳过8个字母后到s,就变成了k8s,Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。

k8s目标

Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更高级的自动化任务。 

k8s功能

Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。
简单的说Kubernetes可以:
自动化容器的部署和复制
随时扩展或收缩容器规模
将容器组织成组,并且提供容器间的负载均衡
很容易地升级应用程序容器的新版本
提供容器弹性,如果容器失效就替换它,等等...
实际上,使用Kubernetes只需一个部署文件,使用一条命令就可以部署多层容器(前端,后台等)的完整集群

k8s核心组件

Kubernetes主要由以下几个核心组件组成:
etcd保存了整个集群的状态;
apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
kubelet负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理;
Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

k8s思维导图

来源于网络:https://www.processon.com/view/5a7d478be4b024b99bf76bfa

k8s Pod简单介绍

Pod概念
Pod在K8S系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。比如一个或一组容器。
Pod运行在一个我们称之为节点Node的环境中,可以是私/公有云的虚拟机或者物理机上,通常在一个节点上运行几百个Pod;其次,每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此他们之间的通讯和数据交换更为高效。在设计时我们可以充分利用这一特征将一组密切相关的服务进程放入同一个Pod中。
特点:1.实现同一个pod中封装的几个需要紧密耦合互相协作的容器进行资源共享如:网络和存储2.一个pod中可以运行一个容器或多个容器,k8s管理的是Pod而不是直接管理容器。3.同一个pod中的容器会自动分配到同一个node节点上。同一个pod里面的容器,共享的资源及环境总是被同时调用。4.pod不会自愈,有问题会被干掉在起一个。pod下容器重启,不代表pod会重启。

Service和Pod的关联

容器提供了强大的隔离功能,所以有必要把为Service提供服务的这组进程放入到容器中隔离。(如:利用docker容器运行Nginx服)
Kubernetes设计了Pod对象,将每个服务进程包装到相应的Pod中,使其成为Pod中运行的一个容器Container。为了建立Service 和Pod间的关联关系,k8s首先给每个Pod填上了一个标签Label,给运行MySQL的Pod贴上name=mysql标签,给运行mongodb的Pod贴上name=mongodb标签,然后给相应的服务定义标签选择器Label Selector,(每一种服务由1组或多组Pod组成)比如MySQL Service的标签选择器的选择条件为name=mysql,意为该Service 要作用于所有包含name=mysql Label的Pod上。这样就巧妙的解决了Service和Pod关联问题

Kubernetes RC介绍

Replication Controller简写RC。
作用:确保任何时候Kubernetes集群中有指定数量的pod副本(replicas)在运行
定义一个RC文件包括以下3个关键点
(1) 目标Pod的定义
(2) 目标Pod需要运行的副本数量(Replicas)
(3) 要监控的目标Pod的标签(Label)
在创建好RC系统自动创建好Pod后,kubernetes会通过RC中定义的Label筛选出对应的Pod实力并实时监控其状态和数量,如果实例数量少于定义的副本数量Replicas,则会用RC中定义的Pod模板来创建一个新的Pod,然后将此Pod调度到合适的Node上运行,直到Pod实例的数量达到预定目标。这个过程完全是自动化的,无需人干预。只要修改RC中的副本数量即可。

Kubernetes Master介绍

Kubernetes 里的Master指的是集群控制节点,每个Kubernetes集群里需要有一个Master节点来负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都发给它,它负责具体的执行过程,我们后面执行的所有命令基本上都是在Master节点上运行的。如果Master宕机或不可用,那么集群内容器的管理都将失效Master节点上运行着以下一组关键进程:
Kubernetes API Server (kube-apiserver):提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程
Kubernetes Controller Manager (kube-controller-manager):Kubernetes里所有的资源对象的自动化控制中心
Kubernetes Scheduler (kube-scheduler):负责资源调度(Pod调度)的进程;
另外在Master节点上还需要启动一个etcd服务,因为Kubernetes里的所有资源对象的数据全部是保存在etcd中   

Kubernetes Node介绍

除了Master,集群中其他机器被成为Node节点,Node是物理或者虚拟机器,作为Kubernetes worker,通常称为Minion
每个Node都会被Master分配一些工作负载Docker容器,当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上去。每个Node节点上都运行着以下关键进程。kubelet:负责Pod对应容器的创建、停止等任务,同时与Master节点密切协作,实现集群管理的基本功能
kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件。
Docker Engine(Docker):Docker引擎,负责本机的容器创建和管理工作。
Nodde节点(上图橘色方框)。每个节点都运行如下Kubernetes

Kubernetes 中Master与Node工作内容

在集群管理方面,Kubernets将集群中的机器划分为一个Master节点和一群工作节点(Node),其中,在Master节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性收缩、安全控制、系统监控和纠错等管理功能,并且都是全自动完成的。Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡

菜鸟哈哈翻译器:

kubernetes 音标:[kubə’netis],读:库伯耐踢死
scheduler  音标:['ʃedju:lə(r)],读:斯盖(朱哦)勒儿,译:调度程序
Controller 音标:[kənˈtrəʊlə(r)],读: 坑戳乐儿,译:管理者,控制器
Container  音标:[kənˈteɪnə(r)],读:肯[特诶(连读)]呢(发四声),译:容器
engine     音标:[ˈendʒɪn],读: 安~贞,译: 引擎
cluster    音标:['klʌstə],读:克拉斯特儿,译:集群
pause      音标:[pɔ:z],译:延长,暂停
Replication 译: 复制
selector   译: 选择器

转载于:https://my.oschina.net/wangyunlong/blog/2239810

kubernetes-[1]-简单介绍相关推荐

  1. Kubernetes中StatefulSet介绍

    原文链接:Kubernetes中StatefulSet介绍 StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考 ...

  2. Kubernetes 探针使用介绍

    Kubernetes 探针使用介绍 一.基本介绍 二.K8s 探针使用介绍 一.基本介绍 当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这 ...

  3. kubernetes各组件介绍

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

  4. docker简单介绍、安装使用、常用命令、docker构建springboot项目、k8s安装

    docker简单介绍 docker的意义 把事情简单化 Docker友好的基于CLI的工作流使各种技能水平的开发人员都可以访问构建,共享和运行容器化应用程序. 快速移动 从单个软件包安装即可在几分钟内 ...

  5. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

  6. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

  7. 2021年大数据ELK(十五):Elasticsearch SQL简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch SQL简单介绍 一.SQL与Elasticsear ...

  8. 2021年大数据ELK(二):Elasticsearch简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.Elasticsearch简介 1.介绍 2.创始人 二.E ...

  9. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  10. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

最新文章

  1. 基于Python的人工智能美颜系统
  2. pc显示器分辨率 前端_五款高性价比PC显示器推荐 499元起
  3. SpringBoot连接MQTT服务器时因ClintID重复导致频繁掉线重连
  4. 工作324:uni-时间过滤器封装
  5. 多终端同时登录_So easy!同时登陆两个或多个Mac版微信和QQ
  6. 编辑器统一 快捷键
  7. java File类入门学习
  8. postgresql安装hypopg
  9. 【网络协议】IP协议、ARP协议、RARP协议
  10. exploration 和 exploitation 的区别
  11. Fitts’ Law / 菲茨定律
  12. 基于HALCON的喷码字符自训练与识别
  13. ACM题目推荐(刘汝佳书上出现的一些题目)
  14. 荣耀 android 11 rom,华为荣耀10官方固件rom刷机包_华为荣耀10完整版系统升级包
  15. 抖音作品如何上热门推荐?最新抖音如何上热门攻略技巧。
  16. Linux下Bluetooth编程
  17. POJ-3311 Hie with the Pie
  18. 万有引力太阳系行星轨迹模拟
  19. 子类方法中super.父类方法
  20. 16个自媒体平台吐血推荐

热门文章

  1. java程序员学习路线图 java程序员进阶路线
  2. Java常见面试题收集
  3. Chrome 强制显示最小字体为 12px的解决方法
  4. OSPF 的六种 LSA类型
  5. 如何使页面POSTBACK后,仍然显示原来的显示位置
  6. python用for循环求平均分_Python中for循环的一些非常规操作
  7. linux内核C -- 第10课:内联函数探究
  8. makefile中=、:=和+=的区别
  9. CentOS7下初始化PostgreSQL
  10. 第四部分 在configure.in中使用宏来检测