- Kubernetes 为何而生
- Kubernetes 的架构
按需购买 接管硬件资源的运维 提供可编程接口来管理资源 提供 SDN,SDS 模拟硬件网络以及存储
对应用无侵入 面向资源
用户从关注资源的运维转向关注应用的开发运维成本
应用安装包的标准化(Image) 应用进程的标准化(Container)
单进程标准化
我们需要一种 面向应用(Application Oriented) 的系统来降低服务端应用的开发部署和运维成本
We wanted people to be able to program for the data center just like they program for their laptop --Ben Hindman
我们再引申一下,从开发延伸到部署运维
We wanted people to be able to manager app for the data center just like they manager app on their laptop
1.《Borg, Omega, and Kubernetes》
2.Mesos vs Kubernetes
- 编程框架 vs 运行平台
- 资源共享 vs 定义状态
- 分布式调度 vs 状态控制器
define a minimal interface that enables efficient resource sharing across frameworks, and otherwise push control of task scheduling and execution to the frameworks -- mesos
Kubernetes is not a mere “orchestration system”; it eliminates the need for orchestration. The technical definition of “orchestration” is execution of a defined workflow: do A, then B, then C. In contrast, Kubernetes is comprised of a set of independent, composable control processes that continuously drive current state towards the provided desired state. It shouldn’t matter how you get from A to C: make it so. -- kubernetes
- Kubernetes 的部署架构
- Kubernetes 的逻辑架构
- Declare,Observe,React
- 一个状态存储
- 多个控制器
- 自愈 (最终一致)
- 组合 (低级组件组合成高级组件)
- 面向未来 (API 定义目标,而不是过程)
apiVersion: vx
kind: API-Sla
metadata:
name: myservice-sla
spec:
percent: 99%
latency: 200ms
cost: x$/h
selector:
app: myapp
- 同步操作需求比较难实现
- 非状态操作不好实现
- 配置管理 (Declarative application management in Kubernetes)
- 服务依赖
- 阅读本次课程中给出的论文,以及 Kubernetes 的官方文档,结合自己的编程运维经验,思考 Kubernetes 能解决你遇到的哪些问题,哪些可能解决不了。
- 手动搭建一个 Kubernetes 进行试验,初步熟悉 Kubernetes 的命令以及 API。(推荐通过 QingCloud青云的 appcenter 进行部署。https://appcenter.qingcloud.com/apps/app-u0llx5j8)
个人博客: http://jolestar.com