能否在创建GKE节点池时指定Standard网络服务层级
结论先行
GKE节点池支持单独指定Standard网络服务层级,完全不需要切换整个项目的默认网络层级。你在GCP控制台找不到对应配置入口是正常的:该配置项目前未在控制台的节点池创建流程中开放,仅支持通过gcloud CLI、GCP API进行配置。
配置逻辑说明
GCP网络服务层级的绑定粒度是单实例的网卡外部IP(含临时ephemeral IP、静态IP)及对应转发路由,不是项目级的强绑定规则。你之前测试时切换项目默认层级再创建节点池能得到Standard层级的节点IP,本质是新建节点默认继承了创建时刻的项目层级配置,这个继承规则可以在创建节点池时通过参数直接覆盖,不会影响项目全局配置,也不会影响同集群下其他节点池的网络层级。
gcloud CLI配置操作
执行节点池创建命令时,增加--network-tier STANDARD参数即可,该参数会直接给节点池内所有节点的外部网卡绑定Standard层级的临时IP,节点上的所有出向、入向流量默认走Standard网络转发路径:
gcloud container node-pools create <你的目标节点池名称> \ --cluster <所属GKE集群名称> \ --zone <集群所在可用区/区域> \ --network-tier STANDARD \ # 后续追加你需要的其他节点池配置,比如机器类型、节点数、操作系统镜像、服务账号等
针对Host Networking UDP工作负载的适配说明
- 按上述方式创建的Standard层级节点池,节点本身的临时外部IP就属于Standard服务层级,部署的Host网络模式双向UDP服务,出向流量直接以节点IP为源地址时,天然走Standard网络路径,不需要额外创建Service做转发。
- 不会出现源IP强制走Premium层级的问题:节点网卡IP本身已经绑定Standard层级属性,从该IP发出的流量默认匹配Standard tier的转发规则,不需要额外做源地址转换。
配置校验方法
节点池创建完成后,取任意节点的计算实例名称,执行以下命令查询网卡的网络层级配置,返回结果为STANDARD即代表配置生效:
gcloud compute instances describe <节点实例名称> \ --zone <节点所在可用区> \ --format="get(networkInterfaces[0].accessConfigs[0].networkTier)"
注意:如果你创建节点池时指定了自定义静态外部IP,需要提前将对应静态IP的网络层级设置为Standard,否则节点会优先使用静态IP绑定的网络层级,覆盖节点池的配置参数。
内容的提问来源于stack exchange,提问作者Grant Limberg
相关产品推荐
相关产品推荐

