Kubenetes 核心概念理解
Kubernetes 是一个具有自动控制 、自动纠错功能的资源管理系统
可以把 Node , Pod , Replication Controller , Service 等都看做是一种 "资源对象"
通过Kubernetes提供的 kubectl 工具 or API编程调用 对这些资源对象进行 增、删、改、查 等操作 并将其在 etcd 中持久化存储。
Kubernetes 其实是一个高度自动化的资源控制系统,它通过跟踪对比etcd库里保存的“资源期望状态” 与 当前环境中的“实际资源状态”的差异
来实现自动控制和自动纠错的高级功能。
---------------------------------------------------
Master
负责整个集群的管理和控制
kube-apiserver
kube-controller-manager
kube-scheduler
Etcd
-------------------------------------------------------
Node
kubelet
kube-proxy
Docker Engine
-------------------------------------------------------
Label
相当于标签
通过
------------------------------------------------------
Deployment
deployment 和 RC 的相似度超过90%
可以随时知道当前Pod "部署"的进度
----------------------------------------------------------
Service
对应于微服务架构中的一个"微服务"

------------------------------------------------------------------------------------------------------
Volume (存储卷)
volume是pod中能够被多个容器访问的共享目录
volume定义在Pod上,然后被一个Pod里的多个容器挂载到具体的目录下
volume与Pod的生命周期相同,但与容器的生命周期不相关,当容器终止或者重启时,volume中的数据也不会丢失。
Kubernetes支持 GlusterFS 、Ceph等先进的分布式文件系统.
volume类型
1,emptyDir
emptyDir Volume是在Pod分配到Node时创建的。初始内容为空,无需指定宿主机上对应的目录文件,因为这是kubernetes自动分配的一 个目录,当Pod从Node上移除时,emptyDir中的数据也会被永久删除。
2,hostPath
hostPath是在Pod上挂载宿主机上的文件或目录
适用场景:(1) 容器应用程序生成的日志文件需要永久保存时,可以使用宿主机的高速文件系统存储
(2)需要访问宿主机上Docker引擎内部数据结构的容器应用时,可以通过定义hostPath为宿主机/var/lib/docker 目录
,使容器内部应用可以直接访问Docker的文件系统
3,gcePersistentDisk
google公有云提供的永久磁盘
4,awsElasticBlockStore
亚马逊的公有云提供的EBS Volume
5, NFS
volumes:
- name: nfs
server: nfs-server.localhost
path: "/ "
其他
---------------------------------------------------------------------------
Persistent Volume
PV 可以理解成 Kubernetes 集群中的某个网络存储中对应的一块存储
PV 只能是网络存储,不属于任何Node,但可以在每个Node上访问
PV 并不是定义在Pod上的,而是独立于Pod之外定义
PV 目前只有几种类型: GCE Persistent Disks , NFS , RBD , iSCSCI , AWS ElasticBlockStore ,Gluster FS
PV 的 accessMode属性:
ReadWriteOnce: 读写权限,并且只能被单个Node 挂载
ReadOnlyMany: 只读权限,允许被多个Node挂载
ReadWriteMany: 读写权限,允许被多个Node挂载
PVC
如果某个Pod想申请某种条件的PV,则首先要定义一个PersistentVolumeClaim(PVC)对象

PV是有状态的对象,有以下几种状态:
Availabel: 空闲状态
Bound: 已经绑定到某个PVC上
Released: 对应的PVC已经删除,但资源还没有被收回
Failed: PV自动回收失败。
----------------------------------------------------------------
Namespace
Namespace在很多情况下用于 实现多租户的资源隔离。
Namespace通过将集群内部的资源对象 “分配” 到不同的Namespace 中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源同时还能被分别管理。
kubectl get namespaces
如果不特别指明namespace ,则用户创建的Pod , RC , Service 将都被系统创建到default的namespace中。
kubectl get pods --namespace=development
Kubenetes 核心概念理解的更多相关文章
- CNN核心概念理解
卷积神经网络 (Convolutional Neural Networks,简称CNN),是一种经典的神经网络算法.由于在图像识别领域取得的良好效果,随着人工智能的火热,它也受到越来越多的关注.CNN ...
- Spark核心概念理解
本文主要内容来自于<Hadoop权威指南>英文版中的Spark章节,能够说是个人的翻译版本号,涵盖了基本的Spark概念.假设想获得更好地阅读体验,能够訪问这里. 安装Spark 首先从s ...
- 领域驱动设计(DDD)部分核心概念的个人理解
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...
- 领域驱动设计(DDD)部分核心概念的个人理解(转)
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...
- 理解maven的核心概念
原文出处:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 好久没进行java方面的开发了,最近又完成了一个java相关的 ...
- 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制
今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...
- 十分钟带你理解Kubernetes核心概念
什么是Kubernetes? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成K ...
- Maven(三)理解Maven核心概念
转载自: http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 本文以类图的方式,介绍maven核心的12个概念以及相互之间的 ...
- DDD战略设计相关核心概念的理解
前言 本文想再讨论一下关于领域.业务.业务模型.解决方案.BC.领域模型.微服务这些概念的含义和关系.初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们 ...
随机推荐
- angular使用sass的scss语法
一.现象 为了简写样式 二.解决 1.安装sass ,利用npm 安装(npm工具如果没有,请先自行安装好) (1).npm install node-sass --save-dev (2).npm ...
- 探索未知种族之osg类生物---渲染遍历之裁剪二
前言 上一节我们大致上过了一遍sceneView::cull()函数,通过研究,我们发现上图中的这一部分的代码才是整个cull过程的核心部分.所以今天我们来仔细的研究一下这一部分. sceneView ...
- 记一次mac下使用mamp集成环境配置lumen项目自定义域名遇到的花样问题
1.安装好mamp集成环境,自行百度. 2.从公司项目版本库里将项目克隆到本地. 好了,开始配置自定义域名来访问项目,以下是遇到的问题集锦... 1.web服务器使用的nginx,配置完域名访问报40 ...
- shell 到达一定数量文件自动删除最久时间文件
#!/bin/bash#rm_file>14day ReservedNum=4 #保留文件数量rm_file_dir='/home/sean/sean/ ...
- docker构建镜像
Docker 提供了两种构建镜像的方法: docker commit 命令Dockerfile 构建文件 示例: Dockerfile FROM golang:1.7.5 #基础镜像 RUN apt- ...
- win 常用CMD命令备忘
一.进入某个硬盘 1.直接输入盘符加冒号,如想进入D盘,则输入命令[d:] . 命令:C:\Windows\system32>d: 结果:d:\> 二.进入某个文件夹 1.输入cd加文件夹 ...
- js 选择指定区域
/根据id 选择特定区域function SelectRange(id) { var div = document.getElementById(id); var controlRange; if ( ...
- ----XMLHttpRequestAPI简单介绍----
XMLHttpRequest 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新.这使得Web页面可以只更新页面的局部,而不影响用户的操作 ...
- CRT-常用命令
1 目录操作 mkdir a ;(新建文件夹) mkdir -p a/b;(新建多及目录文件夹) Rmdir a (a只能是空目录) Rmdir -p a (a可以是多级目录) 2 文件操作 touc ...
- spring+struts+hibernate整合
spring整合: 1:添加配置文件和相应的spring jar包(记得一定要加上commons-logging的jar包,有坑****) 2:创建date对象,如果成功则spring的环境ok