帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Serverless集群
  4. 操作指南
  5. 网络
  6. 为Pod配置独立虚拟交换机和安全组

为Pod配置独立虚拟交换机和安全组

  • 网络
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

您可以在虚拟节点上通过集群级别的自定义资源PodNetworking来描述网络配置,从而支持在虚拟节点上为每个Pod配置独立的虚拟交换机、安全组。本文介绍如何在ACK Serverless场景下,通过创建PodNetworking为Pod配置独立虚拟交换机及安全组。

索引

  • 步骤一:创建网络定义

  • 步骤二:创建Pod

  • 部署示例

  • 常见问题

    • 如何判断Pod是否使用了PodNetworking的网络配置?

    • Pod创建后为什么没有使用PodNetworking中的网络配置?

步骤一:创建网络定义

在ACK Serverless中,您可以创建多个PodNetworking,来规划不同网络平面。在使用前您至少需要创建一个PodNetworking来描述网络配置。创建PodNetworking的示例如下:

apiVersion: network.alibabacloud.com/v1beta1
kind: PodNetworking
metadata:
  name: example
spec:
  allocationType:
    type: Elastic
  selector:
    podSelector:
      matchLabels:
        foo: bar
    namespaceSelector:
      matchLabels:
        foo: bar
  securityGroupIDs:
  - sg-bpxxxx
  vSwitchOptions:
  - vsw-bpxxxx

参数说明如下。

参数

类型

说明

allocationType

type

取值范围:

  • Elastic:弹性IP策略。Pod删除后,IP资源被释放。

  • Fixed:固定IP策略。ACK Serverless暂不支持此分配策略。

重要

ACK Serverless暂不支持Fixed策略。如果将type配置为Fixed固定IP策略时,该PodNetworking会对所有符合selector的Pod生效,并非只对有状态(StatefulSet)的Pod生效;此外,也无法在PodNetworking资源中配置releaseStrategy和releaseAfter参数。

selector

podSelector

  • podSelector用来在Kubernetes中匹配Pod的标签。当podSelector与Pod的标签完全匹配,Pod被创建时就会使用该网络配置。

  • 请确保配置Pod标签与PodNetworking中的selector有唯一匹配关系。如果Pod被多个PodNetworking配置匹配,将使用任意匹配的PodNetworking配置。

  • 如果同时配置了podSelector和namespaceSelector,那么只有那些既满足podSelector中要求的标签,又满足namespaceSelector中要求的标签的Pod,才会使用该网络配置。

namespaceSelector

  • namespaceSelector用来匹配Kubernetes集群中的Namespace的标签。当namespaceSelector与Namespace的标签完全匹配,那么该Namespace中创建的所有Pod就会使用该网络配置。

  • 在未配置namespaceSelector时,PodNetworking会对所有namespace中满足podSelector的Pod使用该网络配置。

  • 您在配置Pod标签与PodNetworking中的selector时,请确保有唯一匹配关系,如果Pod被多个PodNetworking配置匹配,将使用任意匹配的PodNetworking配置。

  • 如果同时配置了podSelector和namespaceSelector,那么只有那些既满足podSelector中要求的标签,又满足namespaceSelector中要求的标签的Pod,才会使用此网络配置。

securityGroupIDs

不涉及

可配置多个安全组ID。在ACK Serverless集群中,只有第一个安全组ID会生效,安全组数量小于等于5个。

vSwitchOptions

不涉及

  • 用于配置Pod使用的vSwitch,多个vSwitchID之间为或的关系。Pod仅能使用一个vSwitch,virtual-kubelet将选择一个符合条件的vSwitch。

  • 如果您为Pod配置了vSwitchOptionsPod后,该Pod所在的可调度可用区将被添加约束,以确保这些可用区和您配置的vSwitchOptions列表内资源所处的可用区一致。

  • 当vSwitchOptions列表内资源所处的可用区并不包含在ACK Serverless已有的可用区时,将会自动创建出该可用区的virtual-node,并将Pod调度到该virtual-node上。

  • 请确保vSwitchOptions中的vSwitch所在可用区和您指定调度的节点可用区一致,并且拥有足够的剩余IP资源,否则Pod将创建失败。

步骤二:创建Pod

创建Pod时,Pod将通过标签匹配PodNetworking。如果Pod没有匹配到任何PodNetworking,则此Pod将使用默认的共享ENI(Elastic Network Interface)上的IP地址。如果Pod匹配到了PodNetworking,则将使用PodNetworking中定义的配置分配ENI。关于Pod标签的相关内容,请参见标签。

部署示例

通过下方示例代码展示Kubernetes如何为符合特定标签的Pod分配所需的网络资源,并使用Deployment来创建所需数量的Pod。

---
apiVersion: network.alibabacloud.com/v1beta1
kind: PodNetworking
metadata:
  name: example
spec:
  allocationType:
    type: Elastic
  selector:
    podSelector:
      matchLabels:
        foo: bar
# 同VPC下的安全组
  securityGroupIDs:
  - sg-2zee386juyk226k1cb5h
# 同VPC下的虚拟交换机
  vSwitchOptions:
  - vsw-2zewh0vanjx3vmjisna6z
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: elastic-podnetworking
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
# 符合podNetworking的podSelector
        foo: bar
    spec:
      containers:
      - name: my-container
        image: nginx

常见问题

如何判断Pod是否使用了PodNetworking的网络配置?

Pod创建后,如果在Pod的annotations中是以k8s.aliyun.com/pod-networking作为键值记录创建该Pod,则表示使用了PodNetworking资源。

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/pod-eni: "true"
    k8s.aliyun.com/pod-networking: podnetworking
  labels:
    app: example
    pod-ip: elastic

Pod创建后为什么没有使用PodNetworking中的网络配置?

Pod标签和PodNetworking中的标签需要保持唯一匹配。请检查两者是否为唯一匹配。

相关文章

ALB Ingress FAQ 2025-04-18 14:48

本文汇总了使用ALB Ingress时遇到的常见问题。 索引

ALB Ingress异常问题排查 2025-04-18 14:48

ALB Ingress Controller是一种用于Kubernetes集群的Ingress Controller,用于将外部流量导入到集群内部的服务。当使用ALB Ingress访问服务时,ALB Ingress Controller会监听Service和Endpoint资源的变化,实时将后端节

ALB Ingress服务高级用法 2025-04-18 14:48

在ACK Serverless集群中,ALB Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。本文介绍如何使用ALB Ingress将来自不同域名或URL路径的请求转发给不同的后端服务器组、将HTTP访问重定向至HTTPS及实现灰度发布等功能。

ALB Ingress概述 2025-04-18 14:48

本文介绍Ingress基本概念、ALB Ingress Controller工作原理和ALB Ingress Controller使用说明。 Ingress基本概念

ALB Ingress配置词典 2025-04-18 14:48

您可通过配置AlbConfig资源以自定义ALB实例的配置。本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法。 索引 Annotation字段 <

ALB配额计算方式 2025-04-18 14:48

配额(Quota)是指在特定时间段内,对某个资源或服务的使用量或访问次数的限制,通常用于控制资源的分配和使用。在阿里云负载均衡(ALB)服务中,配额计算方式是根据不同的资源类型和资源使用情况来确定的。本文从标准版ALB实例、服务器组、监听和转发规则几个方面介绍ALB的配额计算方式。 ALB配额计算示

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1