0 | Spinnaker 官网笔记
Concepts
Application management
- to view and manage your cloud resources
Spinnaker 中的三个概念:Applications、 clusters、 server groups
暴露服务给用户:Load balancers 、firewall
架构图:
Application
Application 由多个 Cluster 组成、Cluster 由 Server Groups 组成。
Application 即所要部署的 Service。
Cluster
Server Group 的逻辑组合。
Server Group
可以理解成 VM images、docker image、source location 实体、配置信息的组合。
通常配备负载均衡、防火墙。
Load Balancer
ingress 协议+端口范围
- 可选开启健康检查
Firewall
对某IP(段)的端口段的特定通信协议,进行流量控制。
Application deployment
Pipeline
由多个 Stage 组成。pipeline 可以手动/由事件触发,及对 pipeline 运行状态进行反馈。
Stage
简单理解,pipeline 的组成部分。有很多种 stage,像有很多个函数一样。
部署策略
Red/black(Blue/green)
绿色为新版本,蓝色为当前的稳定版本。当进行更新时,直接切到绿色的服务,如果服务不行,那么将请求全部转发到蓝色版本。
Rolling red/black
通过逐个替换为最新实例来完成部署。
Canary
在小范围内使用最新版本,发现异常立即回退到就版本;如果无异常情况,那么继续扩大新版本。
a/b testing
存在多个版本,通过统计,选出最优的版本。
Spinnaker架构
各服务简介
- Deck : 用 typescript 写的前端页面。
- Gate : API 网关。Deck 只通过 Gate 来获取服务。类似 nginx 做转发。
- Orca : spinnaker 的控制中枢。执行定义好的具体事件,控制 stage、task 以及协调其他 spinnaker 服务。
- Clouddriver : 为 spinnaker 提供与云厂商,如 AWS, GCE, CloudFoundry, Azure,的集成服务。
- Front50 : 存储 spinnaker 各种数据,如 application, pipeline, projects, notification。在内存中进行缓存。
- Rosco : 创建容器、镜像。
- Igor : 为 spinnaker 提供与 CI 和 SCM 集成服务。即通过 CI jobs 来触发 pipeline。
- Echo : 事件中心。在 pipeline 的某个阶段发送通知。
- Fiat : 用户鉴权。
服务间依赖
是不是最优的启动序列应该是这样:
- Fiat
- Rosco, Clouddriver, Front50, Keyenta
- Orca
- Echo
- Igor
- Gate
- Deck
涂色块表示:该列所表示的服务 依赖 该行所表示的服务。如:Deck 依赖 Gate。
服务端口
Service | Port |
---|---|
Clouddriver | 7002 |
Deck | 9000 |
Echo | 8089 |
Fiat | 7003 |
Front50 | 8080 |
Gate | 8084 |
Halyard | 8064 |
Igor | 8088 |
Kayenta | 8090 |
Orca | 8083 |
Rosco | 8087 |
Spinnaker执行时序
Deploy 时序
Setup
Halyard 是一个工具集,会帮助拉取 spinnaker 各代码的源代码、启动脚本、日志目录、pid 文件等。
Kubernetes
网络策略
默认接受所有到该pod的流量。
0 | Spinnaker 官网笔记