AKS 上面的坑

type
status
date
slug
summary
tags
category
icon
password
我们有两套 AKS (Azure Kubernetes Service),一套用于测试环境,另一套则是投产使用。这两套环境一年多的使用下来,大大小小踩了一些坑,这里总结一下。

不支持 IPVS

截至目前,AKS 的 kube-proxy 仍旧不能支持 IPVS。相关的 Issuses 开了有一年多之久,尚未见到官方有任何说明。
这就是说,较大规模的 AKS 集群会因为 iptables 而产生性能问题,如果遇到这个问题的朋友可以尝试使用 cilium 这个基于 eBPF 实现的 kube-proxy。
💡
状态更新: 2023-03-09 该功能在海外版 AKS 实现支持,目前尚未 GA
notion image
:::

DNS 解析失败

在使用 kubenet CNI 部署的 AKS 上,CoreDNS 中 timeout 的事件常有发生,这是 Kubernetes 的通病,它主要是由 Iptables 中 Conntrack竞争导致的 DNS 超时。
具体而言,在 AKS 上面,解决这个问题有三种办法。
  1. 使用 Node-Local DNSCache,
  1. 使用 cilium 替换 kube-proxy
  1. Azure CNI Transparent Mode
但是,第一种办法 AKS 并没有提供官方支持,只是在这个 Issuse 下面提供了 workaround。
然而,测试下来并没有根本的解决问题,再查阅了更多的资料后发现很多使用 kubenet CNI 的人都有同样的问题。于是马上我们就遇到了下面的这个坑。

CNI 不可以更换

AKS 不支持在已有的集群上调整网络策略的开关,或是切换 CNI 插件。
这导致如果我们想要从 kubenet CNI 切换到 Azure CNI 以能够使用 Azure CNI Transparent Mode 的话,就必须另外新建集群了。

更新服务主体密钥

AKS 默认签发的服务主体密钥为 1 年,到期后将无法创建新的 PV,LB 等等 Azure 的资源。
Ceate Service-Principal
The SP_ID is your appId, and the SP_SECRET is your password:
Excute upgrade, the nodepool will be restart.
Garage: S3 兼容对象存储Nginx-Ingress 一致性哈希
Loading...