阿里云的ack参考手册

阿里云的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敏感型的工作负载提供更好的性能