1-1.初始K8s
术语及原理
- Master(主节点:control plane)
集群中的神经中枢网关。负责整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控、纠错等管理功能。
- ApiServer
集群的网关。
负责输出RESTful风格K8s接口,则是通往集群所有REST操作命令的入口,并负责接收、校验、相应所有的REST请求,最终结果状态存储在etcd中。
- Controller Manager
负责生命周期功能及API业务逻辑。
a.生命周期功能:Namespace创建和生命周期、Event垃圾回收、Pod对象终止相关的垃圾回收、级联垃圾回收、Node的垃圾回收
b.API业务逻辑:由ReplicaSet执行的Pod对象扩展
- Scheduler
在API Server确认Pod对象之后,由调度器(Scheduler)根据集群中各节点的可用资源状态、目标运行容器的资源需求做出调度策略。
- Etcd
基于Raft协议开发的分布式键值存储,用于服务发现、共享配置、保证一致性(数据库的主从节点选择,分布式锁等)。
a.etcd是独立的组件,并不属于K8s集群。
b.生产环境etcd应该按照集群方式部署运行,以提升高可用。
- Node(从节点:worker node)
工作节点。负责接收来自Master节点的工作指令并根据指令相应的创建或者销毁Pod对象,以及调整网络规则以合理的路由转发流量。
- Pod
Kubernetes并不会直接运行容器,而是使用一个抽象的资源对象封装一个或者多个容器,此对象就是Pod对象。
是K8s最小的调度单元。
一个Pod对象可以拥有多个Container容器应用。通常情况下,这些在同一个Pod对象中的Container容器是高耦合。因为其共用同一个Pod对象下的网络名称空间、存储资源、UTS命名空间(同一个主机名称)、PID命名空间(不同应用程序可以看到其他应用程序的PID)
- Pod Controller(Pod 控制器)
虽说Pod对象是最小的调度单元,但实际应用中,并不会直接部署、管理Pod对象,而是借助Pod Controller对其进行管理。
- Replication Controller(复制控制器)
K8s的核心概念,用于管理Pod的声明周期。在主节点中,控制管理器进程同RC的定义完成Pod的创建、监控、启停等操作。
- Replica Set
保证在某个时间点儿上,一定数量的Pod对象在运行。是Replication Controller的升级版本。
主要区别在于Selector选择器
Replica Set:支持集合级别的选择器。
Replication Controller:支持在等号描述的选择器。
- Deployment
为保证指定的Pod对象的副本数量精确符合定义,否则将会按照「多退少补」原则进行自动管理。
- Label(标签)
将资源进行分类的标识符,一组附加在对象上的键值对类型数据。主要为了解决Pod对象与Service之间的关联关系。
一个对象可以拥有多个标签,一个标签也可以附加在多个对象。
- Service
建立在Pod对象之上的资源抽象,通过标签选择器选定一组Pod对象,并设定统一且固定的访问入口(通常情况下表现形式是IP地址)。
- 拥有唯一指定的名字
- 拥有一个虚拟IP地址和端口号
- 能够提供某种远程能力
- 被映射到提供服务能力的一组容器之上
- Service的服务进程目前通过Socket方式对外提供服务
如果Kubernetes集群存在DNS附件,将会在Service对象创建时为其自动指定一个DNS名称用于客户端服务发现。
- Volume(容器共享存储卷)
独立于容器文件系统之外的存储空间,常用在扩展容器的存储空间并为其提供持久化存储能力。临时卷与本地卷一般位于Node本地,一旦Pod对象被调度至其他Node节点,此类型的存储卷将无法正常访问,所以此类存储卷用于数据缓存。持久数据将存放在Persistent Volume(持久卷)。
- Persistent Volume(持久卷)
- Persistent Volume Claims
- Annotation
另外一种附加在对象之上的键值类型数据,但拥有更大的数据量。常用于将各种非标识型元数据(metadata)附加到对象,但不能标识和选择对象。K8s将不会直接使用,仅当方便工具或用户查找等用途。
a.build信息、release信息、Docker镜像信息等
b.日志库、监控库、分析库资源等资源库地址信息
c.程序调试工具信息
d.团队信息
- Namespace
使用Namespace来组织kubernetes的各种对象,可以实现用户的分组(多租户),对不同的租户还可以进行单独的资源设置和管理,是的整个集群的资源配置非常灵活。
a.在同一命名空间中,同一类型资源对象的名称必须具有唯一性
b.名称空间空间通常用于实现租户或项目的资源隔离,以达到逻辑分组目的。
- Ingress
解决Pod对象与外部网络隔离无法访问的组件。
由于K8s将Pod对象与外网进行隔离,同时Pod与Service等对象间的通信全是由K8s内部网络进行。
1-1.初始K8s的更多相关文章
- 记录一次k8s环境尝试过程(初始方案,现在已经做过很多完善,例如普罗米修斯)
记录一次Team k8s环境搭建过程(初始方案,现在已经做过很多完善,例如普罗米修斯) span::selection, .CodeMirror-line > span > span::s ...
- ASP.NET Core 借助 K8S 玩转容器编排
Production-Grade Container Orchestration - Automated container deployment, scaling, and management. ...
- k8s运行容器之deployment(三)--技术流ken
deployment 我们已经知道k8s是通过各种controller来管理pod的生命周期.为了满足不同业务场景,k8s开发了Deployment.ReplicaSet.DaemonSet.Stat ...
- K8s快速入门
在k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象.一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单 资源清单的格式: apiVersion: ...
- 朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)
十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器 ...
- k8s yaml说明
k8s yaml # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: ...
- k8s docker集群搭建
一.Kubernetes系列之介绍篇 •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...
- K8S各知识点整理
一.k8s组成部分 Master 1. kube-apiserver 封装了核心对象的增删改查操作,以REST API接口方式提供给外部和内部组件调用.它维护的REST对象将持久化到Etcd中 2 ...
- kubadm创建k8s v1.10集群
kubadm创建k8s集群 1:服务器信息以及节点介绍 主机名 ip 备注 k8s-master 192.168.0.104 master etcd keepalived k8s-client1 19 ...
随机推荐
- HDU_1455_dfs
http://acm.hdu.edu.cn/showproblem.php?pid=1455 int dfs(int all,int sum,int now),all代表剩余总长,sum,代表每段长, ...
- Go语言实现:【剑指offer】变态跳台阶
该题目来源于牛客网<剑指offer>专题. 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 找规律: 1阶:1种: 2阶:2 ...
- Go语言实现:【剑指offer】数字在排序数组中出现的次数
该题目来源于牛客网<剑指offer>专题. 统计一个数字在排序数组中出现的次数. 看到排序数组,要想到用二分查找. 先找到最前面的数字k,再找到最后面的数字k,通过下标求出次数. Go语言 ...
- Python 协程 - Coroutines
协程 - Coroutines Awaitable Objects, Awaitable Objects 通常由 __await__() 生成, 而 Coroutine objects 是由 asyn ...
- 13-Servlet&Request
今日内容: 1. Servlet 2. Request Servlet 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0注解配置 6. Servlet的体系结构 se ...
- lwip nd没有实现ra,contik有参考
lwip中关于nd的实现,没有路由器的功能,不能发送ra 在contiki中发现有nd发送ra的实现, contiki/core/net/ipv6/uip-ds6.c 在rs的接收处理中,发送soll ...
- Apache 安装 静态编译 动态编译
2014-09-19 09:53 (分类:Linux) 排名第一的web服务器. (linux环境:CentOS release 6.5 (Final)) 安装出错:如下 configure: err ...
- jsplumb 常用事件
1. jsPlumb.getAllConnections() 获取所有连接线2. jsPlumb.deleteEveryConnection(); 清空所有连接线3. jsPlumb.deleteCo ...
- 用原生JS&PHP简单的AJAX实例
功能介绍: 1)file.html 使用 xmlhttp 请求服务器端文件 text ,并更新 file.html 的部分内容 2)update.html 使用 xmlhttp 通过 filewrit ...
- 一招教你用数据可视化BI软件创建网店运营监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以网店运营监控大屏为例为大家演 ...