Docker Engine
Install
1 | install docker engine |
Storage
Overview
1 | show docker volume info |
1 | # install docker engine |
1 | # show docker volume info |
参考:
https://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
https://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
https://www.nixops.me/articles/ssl-cetificate-create-and-signed.html
1 | # 生成私钥,加密参数 -des3 |
什么是事件:Kubernetes 的架构设计基于状态机,不同的状态之间进行转换则会生成相应的事件,正常的状态之间转换会生成 Normal 等级的事件,正常状态与异常状态之间的转换会生成Warning等级的事件。
kube-eventer 组件:Alicloud开源组件,用于获取 Kubernetes 集群中事件消息,并转存至自定义中间件或存储中。(Kubernetes 集群默认只保存1小时内事件)
组件官方地址:https://github.com/AliyunContainerService/kube-eventer
名称 | 功能 | 备注 |
---|---|---|
Kubernetes 集群 | 应用集群 | 使用 minikube 测试集群 |
kube-eventer | 收集 Kubernetes 集群事件 | 集群第三方组件 |
Kafka / Elasticsearch / influxDB | 中间件:存储事件消息 | 存储组件(选型 Kafka) |
kube-eventer-py | 从队列获取事件消息发送至 telegram 告警群组 | 事件消费者 |
Fluentd
负责从 Kubernetes 搜集日志,每个 node 节点上面的 fluentd 监控并收集该节点上面的系统+容器日志,并将处理过后的日志信息发送给 Elasticsearch。
fluentd 数据流逻辑:source –> parser –> filter –> output
Elasticsearch
搜索引擎,负责存储日志并提供查询接口。
Kibana
提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。
主要的日志收集方案:
- 在节点上运行一个 agent 来收集日志(daemonSet)
- 在 Pod 中包含一个 sidecar 容器来收集应用日志
- 直接在应用程序中将日志信息推送到采集后端(一般不采用该方式)
Prometheus Server
Exporter
AlertManager
基于 PromQL 创建告警规则,满足规则产生告警并推送,支持 mail、webhook 等。
PushGateway
原获取数据方式为基于 Prometheus Server 从 Exporter pull 数据,当网络或其他原因 Server 无法与 Exporter 直接通信时,使用 PushGateway 方式中转。
Prometheus server 定期从配置好的 jobs 和 exporters 中拉取 metrics,或者接收来自 Pushgateway 发送过来的 metrics,或者从其它的 Prometheus server 中拉 metrics
metrics:实际监控指标数据,如 cpu 利用率
1 | # 生成密钥对 |
–cloud-init :导入本地生成的公钥文件到初始化系统中,可以使用密钥免密 SSH
消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。
消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻辑可能放在一起同步执行,随着业务的发展订单量增长,需要提升系统服务的性能,这时可以将一些不需要立即生效的操作拆分出来异步执行,比如发放红包、发短信通知等。这种场景下就可以用 MQ ,在下单的主流程(比如扣减库存、生成相应单据)完成之后发送一条消息到 MQ 让主流程快速完结,而由另外的单独线程拉取MQ的消息(或者由 MQ 推送消息),当发现 MQ 中有发红包或发短信之类的消息时,执行相应的业务逻辑。
以上是用于业务解耦的情况,其它常见场景包括最终一致性、广播、错峰流控等等。
前置要求
操作步骤
通过 Edas 创建新应用,并暴露 service(无需 SLB 暴露)。已 app1 应用为例:
资源 | 旧版本 | 新版本 |
---|---|---|
Edas 应用 | app1-test | app1-new-test |
Deployment | app1-test-group-x-xxx | app1-new-test-group-x-xxx |
Service | app1-svc | app1-new-svc |