【问题标题】:ClusterIP: None and failing podsClusterIP:无和失败的 pod
【发布时间】:2019-04-10 16:44:20
【问题描述】:

我在几个 POD 前面有一个 NGINX,通过 ClusterIP 暴露:无。

NGINX 正在像这样将流量转发到这些节点:

upstream api {
   server my-api:1066;
}

此配置是否会在 my-api 主机名后面的所有 POD 之间平均分配流量? 是否会从主机名解析中删除失败的 POD?

【问题讨论】:

    标签: nginx kubernetes google-cloud-platform


    【解决方案1】:

    Kubernetes 服务的默认流量分布是随机的,基于默认的proxy mode: iptables。 (这很可能是你的情况)

    在非常旧的 Kubernetes 版本 (proxy mode: userspace 将默认为循环(如果您愿意,您仍然可以切换到该模式)

    进行循环(可选)的新方法(proxy mode: ipvs。

    您还可以查看提供负载平衡功能的其他解决方案,例如 Cillium

    【讨论】:

    • 为 nginx 后面的 pod 分配固定的 clusterip 地址是否更明智,这样 NGINX 会排除故障节点?我说的是 -- 上游 api {server my-api:1066;} (clusterip: none for my-api) -- vs 上游 api {server api-ip1:1066;server api-ip2:1066;}
    • 并非如此,因为这些会随着 Pod 的上下变化而变化,因此服务保持不变,并且由 Kubernetes 通过端点进行管理
    猜你喜欢
    • 2021-07-02
    • 2021-03-16
    • 2020-02-04
    • 2016-07-30
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多