kubernetes

目录

K8S的实现原理

简述ETCD及其特点?

简述什么是Kubernetes?

简述Kubernetes的优势、适应场景及其特点?



 

K8S的实现原理

1、运维人员向 apiserver 发出指令,可以通过API Server的REST API,也可用Kubectl命令行工具。

2、apiserver 响应命令,通过一系列认证授权,把 pod 数据存储到 etcd,创建 deployment 资源并初始化 (期望状态)。

3、controller-manager 通过 list-watch 机制,监测发现新的 deployment,将该资源加入到内部工作队列,发现该资源没有关联的 pod 和 replicaset,启用 deployment controller 创建 replicaset 资源,再启用 replicaset controller 创建 pod。

4、创建完成后,将 deployment,replicaset,pod 资源更新存储到 etcd。

5、scheduler 通过 list-watch 机制,监测发现新的 pod,经过主机过滤、主机打分规则,将 pod 绑定 (binding) 到合适的主机。

6、将绑定结果存储到 etcd。

7、kubelet 每隔 20s (可以自定义) 向 apiserver 通过 NodeName 获取自身 Node 上所要运行的 pod 清单,通过与自己的内部缓存进行比较,新增加 pod。

8、kubelet 调用 Docker API 创建并启动 pod。

 9、kube-proxy 为新创建的 pod 注册动态 DNS 到 CoreOS。给 pod 的 service 添加 iptables/ipvs 规则,用于服务发现和负载均衡。

10、controller-manager 通过 control loop(控制循环)将当前 pod 状态与用户所期望的状态做对比,如果当前状态与用户期望状态不同,则 controller 会将 pod 修改为用户期望状态,实在不行会将此 pod 删掉,然后重新创建pod。

简述ETCD及其特点?

 即一个用于配置共享和服务发现的键值存储系统。
etcd 是一款分布式存储中间件,使用 Go 语言编写,并通过 Raft 一致性算法处理和确保分布式一致性,解决了分布式系统中数据一致性的问题。
而且作为一款分布式、可靠的键值存储组件,etcd 常用于微服务架构中的服务注册与发现中心,相较于 ZooKeeper 部署更简单,而且具有数据持久化、支持 SSL 客户端安全认证的独特优势。
etcd 作为一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转。
etcd 可集中管理配置信息。服务端将配置信息存储于 etcd,客户端通过 etcd 得到服务配置信息,etcd 监听配置信息的改变,发现改变通知客户端。
而 etcd 满足 CAP 理论中的 CP(一致性和分区容错性) 指标,由此我们知道,etcd 解决了分布式系统中一致性存储的问题

etcd 可以用来构建高可用的分布式键值数据库,总结来说有如下特点。
简单:安装简单,且为用户提供了 HTTP API,使用起来也很简单;
存储:数据分层存储在文件目录中,类似于我们日常使用的文件系统;
Watch 机制:Watch 指定的键、前缀目录的更改,并对更改时间进行通知;
安全通信:支持 SSL 证书验证;
高性能:etcd 单实例可以支持 2K/s 读操作,官方也有提供基准测试脚本;
一致可靠:基于 Raft 共识算法,实现分布式系统内部数据存储、服务调用的一致性和高可用性;
Revision 机制:每个 Key 带有一个 Revision 号,每进行一次事务便加一,因此它是全局唯一的,如初始值为 0,进行一次 Put 操作,Key 的 Revision 变为 1,同样的操作,再进行一次,Revision 变为 2;换成 Key1 进行 Put 操作,Revision 将变为 3。这种机制有一个作用,即通过 Revision 的大小就可知道写操作的顺序,这对于实现公平锁,队列十分有益;
Lease 机制:即租约机制(TTL,Time To Live),Etcd 可以为存储的 Key-Value 对设置租约,当租约到期,Key-Value 将失效删除;同时也支持续约,通过客户端可以在租约到期之前续约,以避免 Key-Value 对过期失效;此外,还支持解约,一旦解约,与该租约绑定的 Key-Value 将失效删除;

简述什么是Kubernetes?

 Kubernetes是一个全新的基于容器技术的分布式系统支撑平台。是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。并且具有完备的集群管理能力,多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。

简述Kubernetes的优势、适应场景及其特点?

 Kubernetes作为一个完备的分布式系统支撑平台,

 其主要优势:

容器编排
轻量级
开源
弹性伸缩
负载均衡
Kubernetes常见场景:

快速部署应用
快速扩展应用
无缝对接新的应用功能
节省资源,优化硬件资源的使用
Kubernetes相关特点:

可移植: 支持公有云、私有云、混合云、多重云(multi-cloud)。
可扩展: 模块化,、插件化、可挂载、可组合。
自动化: 自动部署、自动重启、自动复制、自动伸缩/扩展。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值