阿里云的ack参考手册 #
1. ack组件介绍 #
1.1. 核心组件 #
1.1.1. Cloud Controller Manager #
阿里云kubernetes的云控制器,里面包含:
- Service资源LoadBalancer类型的SLB实现
- Terway VPC模式的节点路由表信息添加
- 节点autoscaler的实现
1.2. 应用管理 #
1.2.1. alicloud-application-controller #
分批发布的工具,在原生的应用负载之上,增加了分批发布/回滚的功能,但是二麻从来没用过:D,有更好的,谁还会用这个?
1.2.2. appcenter #
应用中心,咋一看,像是个应用集市,实际上是个持续部署/交付(CD)的工具。
该项目是抄袭的是ArgoCD,项目地址: Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes,像素级借鉴,理念/界面极其相似,阉割了部分功能。
遵循GitOps理念,模板编排放到Git仓库中;定义对应的资源,生成manifest,然后同步至目标k8s集群,运维的重心挪到了对模板的管理以及应用参数的配置。
1.2.3. progressive-delivery-tool #
先进的部署工具,按照阿里云的尿性,估摸着是借鉴的argo-rollouts这个项目,项目地址: Argo Rollouts - Kubernetes Progressive Delivery Controller
看介绍,目前实现了金丝雀部署,能结合nginx的金丝雀功能,实现流量控制。
1.3. 日志监控 #
1.3.1. ack-node-problem-detector #
节点监控的组件,借鉴的 node-problem-detector开源项目(这个是明确说明借鉴的)
1.3.2. ags-metrics-collector #
基因计算,不予置评
1.3.3. alicloud-monitor-controller #
用于对接阿里云监控的组件
1.3.4. ack-arms-prometheus #
prometheus监控
1.3.5. logtail-ds #
日志采集组件,高性能
1.3.6. metrics-server #
开源通用组件,集群聚合metrics信息
1.4. 存储 #
1.4.1. alicloud-disk-controller 和 flexvolume #
老版的存储控制器,基于flexvolume的云存储扩展方案
1.4.2. csi-plugin 和 csi-provisioner #
基于csi规范提供的阿里云存储插件,@郡宝 负责,支持的存储类型众多,可用于IDC非阿里云环境。
1.5. 网络 #
1.5.1. kube-flannel-ds #
ack默认网络插件,不支持 network policy,支持的网络模式有限,快被弃用了
1.5.2. Nginx Ingress Controller #
ingress的nginx实现,稳定,高性能,通用,默认slb挂载节点的NodePort,可以更换为直接挂载eniip(前提,使用terway插件)
1.5.3. terway 和 terway-eniip #
阿里云开发并开源的网络插件,有三种模式:
- vpc模式 - 虚拟ip,通过添加vpc路由表节点路由,可完成通信
- eni模式 - 给pod单独分配独立的eni辅助网卡,资源有限,除非涉及到对网络性能要求巨高且节点上承载pod不多的场景,比如边缘节点
- eniip模式 - 给pod分配eni网卡的辅助IP,该IP相对较多,如果规格稍大,基本够用
除了满足基本的网络互通的功能,terway还集成了calico felix组件,能够实现network policy的功能。
1.6. 安全 #
1.6.1. aliyun-acr-credential-helper #
阿里云镜像服务acr的辅助小工具,用于更新sts鉴权信息
1.6.2. gatekeeper #
OPA agent好东西,可以了解一下,不仅仅是k8s方面
1.6.3. kritis-validation-hook #
验证镜像签名,属于容器安全的范畴
1.6.4. security-inspector #
集群安全扫描工具
1.7. 可选组件 #
1.7.1. ack-arena #
kubeflow下的小工具
1.7.2. resource-controller #
ACK基于新版的Scheduling framework实现CPU拓扑感知调度,针对CPU敏感型的工作负载提供更好的性能