k8s基础解析

一、关于k8s的理解

  1. k8s作为一个容器编排平台,其核心功能是编排
  2. Pod是k8s的最小调度单位,具有很多的字段和属性。其编排的实现主要是通过一个个控制器根据被控制对象的属性和字段实现的。
  3. 在k8s中,每个build-in资源类型(Deployment,Statefulset...也就是内置类型)都有对应的控制器,都遵循一个通用的编排模式:Reconcile loop(调谐循环).
for {
actualState := GetResourceActualState(rsvc)
expectState := GetResourceExpectState(rsvc)
if actualState == expectState {
// do nothing
} else {
Reconcile(rsvc)
}
}

 

调谐循环;

实现方式类似于一个无限循环,通过不断地对比资源的实际状态于我们期望的状态(事件驱动+定时同步),如果不同则进行Reconcile(调谐:最终结果一般是对被控制对象的某种写操作,比如增/删/改 pod)。

4.声明式api

所谓声明式就是“告诉 K8s 你要什么,而不是告诉它怎么做的命令”,一个很熟悉的例子就是 SQL,你“告诉 DB 根据条件和各类算子返回数据,而不是告诉它怎么遍历,过滤,聚合”。在 K8s 里面,声明式的体现就是 kubectl apply 命令,在对象创建和后续更新中一直使用相同的 apply 命令,告诉 K8s 对象的终态即可,底层是通过执行了一个对原有 API 对象的 PATCH 操作来实现的,可以一次性处理多个写操作,具备 Merge 能力 diff 出最终的 PATCH,而命令式一次只能处理一个写请求。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值