为了解决我的 EKS 集群中默认的 AWS VPC CNI 最大 pod 数量节点限制(Max Pods = 实例类型支持的最大网络接口数)*(每个接口的 IPv4 地址) - 即 t3.medium 中的 17 个),我开始使用 Weave CNI 插件来克服这个限制。
这带来了一个警告,如果您有一个应用程序或容器在覆盖网络中运行,并且 Kubernetes 主节点/API 需要与之通信,那么它将无法工作。例如,ApiServicev1beta1.metrics.k8s.io
尝试连接到metrics-server
覆盖网络中运行的 pod,但它不会成功。一个建议的解决方案是运行metrics-server
它hostNetwork: true
工作得很好。
当我们决定使用时,我的问题就开始了custom-metrics
,prometheus-adapter
这样我们就可以从 Kafka 消费者组延迟中获得指标,用于消费者 pod 的水平自动缩放。要让 ApiServicev1beta1.custom.metrics.k8s.io
与prometheus-adapter
pod 对话,我们还必须进行设置hostNetwork: true
,但这次prometheus-adapter
不能再访问在覆盖网络中运行的 Prometheus - 我们无法将所有内容移动到主机网络!
我在这里有点死胡同。我想我可以使用一些“工具”将我需要的指标从覆盖网络 Prometheus 转发到主机网络中的另一个 Prometheus,然后由 prometheus-adapter 使用?