Kubernetes 相关概念
Node:
(1) Node(节点)也就是宿主机,宿主机可以是物理机 、云主机 、虚拟机等等,我们可以在一个宿主机上跑多个容器(container)
(2) Node 上会被分配一些工作负载(即 docker 容器),当 Node 宕机后,其上面跑的应用会被转移到其他 Node 上
(3) Node 上有这些关键的进程:
① kubelet,负责Pod对应容器的创建、启动、停止等任务,同时与Master节点密切协作,实现集群管理的基本功能
② kube-proxy,实现 Kubernetes Service 之间的通信与负载均衡机制的重要组件
③ Docker Engine,Docker引擎,负责本机容器的创建和管理
Pod:
(1) 我们可以在一个宿主机上跑多个容器,为了高可用和负载均衡,我们把多个容器组成一个Pod,同一个Pod里的容器共享同一个网络命名空间,可以使用 localhost 互相通信;
(2) 每个Pod里都有一个特殊的容器(Pause),这个容器提供网络栈和数据卷,其他普通容器共享这个容器的资源,因此同一个Pod内容器之间的通信和数据交换更为高效;
(3) 因为每个Pod都有一个Pause(根容器),因此每个Pod至少有两个容器,一个根容器和一个工作容器,只有当根容器挂了,才认为Pod挂了
Service:
(1) 多个功能相同的Pod组成一个Service(微服务),Kubernetes 集群是由多个 Service 组成的,我们可以通过 ip:port 的形式来访问Service
(2) 同一个Service下的所有Pod是通过 kube-proxy 实现负载均衡,而每个Service都会分配一个全局唯一的虚拟ip,也叫做 Cluster ip
Master:
(1) 在一个Kubernetes集群里面,会有多个节点(Node),而 Kubernetes Master 这个节点作为主节点,用来管理其他的工作节点;
(2) Master 节点的功能包括资源管理 、Pod调度 、弹性伸缩 、安全控制 、系统监控 、纠错等;
(3) Master 是整个集群的控制中心,kubernetes 的所有控制指令都是发给Master,它负责具体的执行过程;
(4) Master上有这些关键的进程:
① Kubernetes API Server,是所有资源增、删、改、查等操作的唯一入口,比如我们要增加Pod,增加Service都要通过这个入口来配置
② Kubernetes Controller Manager,是所有资源的自动化控制中心,比如弹性伸缩功能,就是通过 Controller Manager 控制Pod的数量来实现的
③ Kubernetes Scheduler,负责资源调度,主要是调度Pod到合适的Node上
④ etcd Server,etcd是一个高可用的键值存储系统,Kubernetes使用它来存储各个资源的状态及资源的数据
Label:
(1) Label是一个键值对,其中键和值都由用户自定义,Label 可以附加在各种资源对象上,如 Node、Pod、Service、RC 等;
(2) 比如多个功能相同的Pod会组成一个Service,那么Service怎么区分这些Pod呢?我们会给每个Pod打一个Label(标签),Service 通过 Label 来找到指定的Pod;
(3) 一个资源对象可以定义多个 Label,同一个 Label 也可以被添加到任意数量的资源对象上;Label可以在定义对象时定义,也可以在对象创建完后动态添加或删除;
RC:
(1) RC(Replication Controller)定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期
(2) 比如 Master 上运行的 RC 就是用来控制弹性伸缩的,通过控制Pod的数量来实现,如果某个Pod挂了,RC会重新选用另一个Pod
(3) RC 也可以用来实现动态升级,比如新版本每增加1个Pod,旧版本就减少一个Pod,始终保持固定的值,最终旧版本Pod数为0,全部为新版本
(4) Deployment:这个工具相当于RC的升级版,可能会取代RC,目的是为了解决Pod编排问题,跟RC比较,最大的一个特点是可以知道Pod部署的进度
HPA:
(1) HPA(Horizontail Pod Autoscaler)用来实现Pod的动态扩容、缩容,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来决定是否要调整目标Pod的副本数
(2) 有两种指标作为判断的依据,第一种是cpu的平均值,比如所有Pod的cpu平均值达到90%就扩容;第二种是Service请求数,达到指定的请求数就扩容
Volume:
(1) Volume存储卷,是Pod中能够被多个容器访问的共享目录,定义在Pod上,然后被一个Pod里的多个容器挂载到具体的目录下
(2) Volume与Pod生命周期相同,但与容器的生命周期没关系,当容器终止或者重启时,Volume中的数据并不会丢失
(3) Kubernetes支持多种类型的Volume,如 glusterfs,ceph 等先进的分布式文件系统
PV:
(1) PV(persistent volume)可以理解成 Kubernetes 集群中某个网络存储中对应的一块存储,它与 Volume 类似,但也有一些区别
(2) PV只能是网络存储,不属于任何Node,但可以在每个Node上访问到;PV并不是定义在pod上,而是独立于pod之外定义
Namespace:
(1) 当Kubernetes集群中存在多租户的情况下,就需要有一种机制实现每个租户的资源隔离,而 Namespace(命名空间)的目的就是为了实现资源隔离
(2) Namespace(命名空间)可以理解为划分子网,使得网段不同,从而实现资源隔离
Kubernetes 相关概念的更多相关文章
- Kubernetes相关概念
This page explains how Kubernetes objects are represented in the Kubernetes API, and how you can exp ...
- Kubernetes 简介
一.Kubernetes 相关概念 1. Kubernetes 是一个开源的容器集群管理系统,主要用来自动化部署容器 .自动扩展与收缩容器规模 .提供容器间的负载均衡2. Node:Node(节点)也 ...
- kubernetes入门学习系列
一.kubernetes基础概念 初识kubernetes kubernetes相关概念 二.kubernets架构和组件 kubernetes架构 kubernetes单Master架构 kuber ...
- Kubernetes学习-相关概念
Kubernetes架构图 上图可以看到如下组件,使用特别的图标表示Service和Label: Pod Container(容器) Label()(标签) Replication Controlle ...
- kubernetes学习笔记
docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(KVM,XEN): docker可以更加灵活的去实现一些应用层功能, 同时对资源的利用 ...
- Kubeadm 安装部署 Kubernetes 集群
阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Heapster 插件 后记 相关文章:Ku ...
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...
- 安装部署 Kubernetes 集群
安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...
- Kubernetes 学习(十)Kubernetes 容器持久化存储
0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kuberne ...
随机推荐
- java android使用Gson解析泛型json数据
那就直接开始吧. 在我们获取服务器返回的json数据有时候会出现这种情况,比如: {"body":{"attrName":"feed",&q ...
- R语言判断向量中是否存在一个元素
判断ori_data[,1]中是否存在元素a: a %in% ori_data[,1] 如果存在返回 true,否则返回 false
- Python 类的多态
#python的多态 class Dog(): def eat(self): print("i am dog , eat something . ") class Cat(): d ...
- Linux中通过/proc/stat等文件计算Cpu使用率
Linux平台Cpu使用率的计算 proc文件系统 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/pro ...
- Navdeep Jaitly
中文名:耐迪普 杰特尼 早期: 印度科技大学 1994-1995 滑铁卢大学 1998-2000 博士: 多伦多大学 Hinton实验室 2008-2014 工作: 谷歌大脑 2014-2017 英伟 ...
- android wifi RSSI达到阈值自动断开
设置wifi的RSSI达到阈值之后自动断开. wifi状态改变,会更新状态栏,在状态栏中更改. --- a/packages/SystemUI/src/com/android/systemui/sta ...
- Linux操作_grep/egrep工具的使用
一.grep命令介绍 命令格式:grep [-cinvABC] ‘word’ filename,常用选项如下: -c:表示打印符合要求的行数. -i:表示忽略大小写. -n:表示输出符合要求的行及其行 ...
- 解救小哈——DFS算法举例
一.问题引入 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题来了... 二. ...
- e794. 创建JSlider组件
// Create a horizontal slider with min=0, max=100, value=50 JSlider slider = new JSlider(); // Creat ...
- (原)SDL调试心得
今天在项目中用到SDL2.0的库做视频显示用,在其中出现不少问题,这里一一记录下来,并作为以后的参考. 同一个窗口句柄在多次使用SDL_CreateWindowFrom和SDL_DestroyWind ...