kubernetes进阶之二:概述
一:kubernetes是什么
Kubernetes一个用于容器集群的自动化部署、扩容以及运维的开源平台。通过Kubernetes,你可以快速有效地响应用户需求;快速而有预期地部署你的应用;
极速地扩展你的应用;无缝对接新应用功能;节省资源,优化硬件资源的使用。为容器编排管理提供了完整的开源方案。
二:kubernetes集群的架构
一个kubernetes集群都至少由一个Master节点和若干个Node节点组成。
Master节点是集群控制节点,负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都是发给它,它来负责具体的执行过程。
由于Master节点的重要性,它通常会独占一个物理机或虚拟机。
Master节点外的其它机器被称为Node节点,Node节点是集群中的工作负载节点,每个Node都会被Master分配一些工作负载(如Docker容器),当某
个Node宕机时,其工作负载会被Master自动转移到其他节点上。
三:kubernetes集群的核心组件
Master节点组件提供整个集群的控制面板:
kube-apiserver: 暴露API操作接口,是kubernetes里面所有资源增,删,改,查等操作的唯一入口;也是集群控制的入口。
etcd: 集群的主数据库,集群里面的所有数据都存储于此。
kube-controller-manager: kubernetes里所有资源对象的自动化控制中心, 控制器的大管家。
kube-scheduler: 负责资源调度(Pod调度)的进程,为新创建的Pod分配Node节点去运行。相当于公交公司的“调度室”。
Node节点组件维持Pods的运行:
kubelet:负责Pod对应容器的创建,启动,停止等任务; 同时与Master节点密切协作,实现集群管理的基本功能。
kube-proxy:实现Service的通信和负载均衡机制的重要组件。
docker: docker引擎,负责本节点的容器创建和管理工作。
Flannel:是Overlay网络的一种,也是将源数据包封装在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VXLAN、AWS VPC和GCE路由等数据转发方式。
四:kubernetes集群中的对象或资源
pod:kubernetes中能够被创建,调度和管理的最小部署单元。
label:一组绑定到kubernetes对象上的键/值对,同一对象的labels属性的Key必须独一无二。
label selector: kubernetes核心的分组机制,通过它客户端能够识别一组有共同特征或属性的kubernetes对象。
serice: pod副本组成的集群实例。主要由一个IP和一个label selector组成。 实现pod集群的IP代理和负载均衡。
voLume:类似于虚拟机的磁盘。Pod中能被多个容器访问的共享目录。
namespaces:用于多租户的资源隔离。
replicaSet:决定一个pod有多少同时允许的副本,并保证这些副本的期望状态与当前状态保持一致。
Deployment: replica set的升级版
DaemonSet: 让所有Node节点运行同一个pod
Job: 类似于Quartz
statefulSet: pod状态保留
五:kubernetes特性
1.自我修复
在节点故障时重新启动失败的容器,替换和重新部署,保证预期的副本数量;
杀死健康检查失败的容器,并且健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。
2.弹性伸缩
使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小成本运行服务。
3.自动部署和回滚
K8S采用滚动更新策略更新应用,一次更新一个Pod,而不是同时删除所有Pod,如果更新过程中出现问题,将回滚更改,确保升级不受影响业务。
4.服务发现和负载均衡
K8S为多个容器提供一个统一访问入口(内部IP地址和一个DNS名称),并且负载均衡关联的所有容器,使得用户无需考虑容器IP问题。
5.机密和配置管理
管理机密数据和应用程序配置,而不需要把敏感数据暴露在镜像里,提高敏感数据安全性。并可以将一些常用的配置存储在K8S中,方便应用程序使用。
6.存储编排
挂载外部存储系统,无论是来自本地存储,公有云(如AWS),还是网络存储(如NFS、GlusterFS、Ceph)都作为集群资源的一部分使用,极大提高存储使用灵活性。
7.批处理
提供一次性任务,定时任务;满足批量数据处理和分析的场景。
kubernetes进阶之二:概述的更多相关文章
- kubernetes进阶(二)核心网络插件Flannel
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html 首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置, ...
- Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
分类: Android高手进阶 Android基础教程 2012-09-14 18:10 29759人阅读 评论(35) 收藏 举报 android相册layoutobjectclassloade ...
- Wireshark入门与进阶系列(二)
摘自http://blog.csdn.net/howeverpf/article/details/40743705 Wireshark入门与进阶系列(二) “君子生非异也,善假于物也”---荀子 本文 ...
- SpringBoot进阶教程(二十九)整合Redis 发布订阅
SUBSCRIBE, UNSUBSCRIBE 和 PUBLISH 实现了 发布/订阅消息范例,发送者 (publishers) 不用编程就可以向特定的接受者发送消息 (subscribers). Ra ...
- Bing Maps进阶系列二:使用GeocodeService进行地理位置检索
Bing Maps进阶系列二:使用GeocodeService进行地理位置检索 在<Bing Maps进阶系列一:初识Bing Maps地图服务>里已经对GeocodeService的功能 ...
- WPF 4 DataGrid 控件(进阶篇二)
原文:WPF 4 DataGrid 控件(进阶篇二) 上一篇<WPF 4 DataGrid 控件(进阶篇一)>中我们通过DataGridTemplateColumn 类自定义编辑 ...
- Spring Boot进阶系列二
上一篇文章,主要分析了怎么建立一个Restful web service,系列二主要创建一个H5静态页面使用ajax请求数据,功能主要有添加一本书,请求所有书并且按照Id降序排列,以及查看,删除一本书 ...
- [原]部署kubernetes dashboard(二)
####################### 以下为声明 ##################### 此文档是之前做笔记在两台机上进行的实践,kubernetes处于不断开发阶段 不能保证每 ...
- Python进阶(十二)----re模块
Python进阶(十二)----re模块 一丶re模块 re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: ...
随机推荐
- DRAM的原理设计
在一个电子系统中,CPU.内存.物理存储.IO这些单元必不可少,只不过有的集成在CPU内部,有的分离出来. 这里就针对系统中的内存,此处选用DRAM来进行说明,讲述下基本的原理设计,主要分为以下几个部 ...
- PHP命名空间与自动加载类详解
本文实例讲述了PHP命名空间与自动加载类.分享给大家供大家参考,具体如下: 今天我要给大家介绍的是PHP的命名空间 和 自动加载类 我先简单的分开演示 在放在一起 大家请看:什么是自动加载类? 想必大 ...
- vue相关文件说明(基于vue2.0)
1.config:生产,开发环境配置参数 2.static:第三方资源,这里面的文件直接写路径,不能用'import'导入 3.node_modules:引入一些依赖包 4..babelrc:定义了E ...
- Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...
- 02 . 处理axios的三个问题 :设置基路径/axios挂载到vue原型/请求时自动携带token
//使用API时必须在请求头中使用 Authorization 字段提供 token 令牌 import axios from 'axios' // 处理axios的三个问题 // 处理一:基路径 a ...
- svn 安装及更新web库
安装: apt-get update //更新apt-get库 apt-get install subversion 安装SVN mkdir /home/svn ...
- js中的观察者模式
什么事观察者模式: 这是一种创建松散耦合代码的技术.它定义对象间 一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知.由主体和观察者组成,主体负责发布事件,同时观察者通过 ...
- Jenkins(Docker容器内)使用宿主机的docker命令
1.Jenkins镜像 Docker容器内的Jenkins使用容器外宿主机的Docker(即DooD,还有另外的情况就是DioD),google一下有几种说法,但是都没试成功(试过一种就是修改宿主机/ ...
- [Swift]LeetCode104. 二叉树的最大深度 | Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- [Swift]LeetCode566. 重塑矩阵 | Reshape the Matrix
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...