详情页标题前

阿里云容器服务ACK为Pod配置独立虚拟交换机和安全组-云淘科技

详情页1

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

索引

  • 步骤一:创建网络定义

  • 步骤二:创建Pod

  • 部署示例

  • 常见问题

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

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

步骤一:创建网络定义

在ACK ServerlessACK中,您可以创建多个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资源中配置releaseStrategyreleaseAfter参数。

  • 在ACK中,如果您是将Pod调度到ECI上,则不支持Fixed策略。如果将type配置为Fixed固定IP策略时,则该PodNetworking会对所有符合selector的Pod生效,并非只对有状态(StatefulSet)的Pod生效;此外,也无法在PodNetworking资源中配置releaseStrategyreleaseAfter参数。

  • 在ACK中,如果您是将Pod调度到ECS上,则支持Fixed策略。更多信息,请参见为Pod配置固定IP及独立虚拟交换机、安全组。

selector

podSelector

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

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

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

namespaceSelector

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

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

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

  • 如果同时配置了podSelectornamespaceSelector,那么只有那些既满足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中的标签需要保持唯一匹配。请检查两者是否为唯一匹配。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/171303.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云大数据开发治理平台 DataWorksDoris数据源-云淘科技

    DataWorks数据集成支持使用Doris Writer导入表数据至Doris。本文为您介绍DataWorks的Doris数据同步能力支持情况。 支持的Doris版本 Doris Writer使用的驱动版本是MySQL Driver 5.1.47,该驱动支持的内核版本如下。驱动能力详情请参见Doris官网文档。 Doris 版本 是否支持 0.x.x 支持…

  • 阿里云大数据开发治理平台 DataWorksHBase数据源-云淘科技

    HBase数据源为您提供读取和写入HBase的双向通道,本文为您介绍DataWorks的HBase数据同步的能力支持情况。 支持的版本 支持HBase0.94.x、HBase1.1.x、HBase2.x和Phoenix5.x版本。 如果您的HBase版本为HBase0.94.x,Reader和Writer端的插件请选择094x。 “reader”: { “p…

  • 阿里云日志服务SLS对接DataV-云淘科技

    DataV是阿里云的可视化产品,能帮助您通过图形化的界面轻松搭建专业水准的可视化应用,丰富表现日志分析数据。本文档介绍如何通过日志服务对接DataV进行大屏数据展示。 前提条件 已采集数据。具体操作,请参见数据采集。 已创建索引。具体操作,请参见创建索引。 背景信息 实时大屏广泛应用于大型在线促销活动。实时大屏基于流式计算架构,该架构包含以下模块: 数据采集…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器安全组五元组规则-云淘科技

    安全组用于设置单台或多台ECS实例的网络访问控制,它是重要的网络安全隔离手段,用于在云端划分安全域。安全组五元组规则能精确控制源IP、源端口、目的IP、目的端口以及传输层协议。 背景信息 在最初设计安全组规则时: 安全组入规则只支持:源IP地址、目的端口、传输层协议。 安全组出规则只支持:目的IP地址、目的端口、传输层协议。 在多数应用场景下,该安全组规则简…

    阿里云服务器 2023年12月9日
  • 阿里云日志服务SLS时序数据对接Grafana-云淘科技

    日志服务MetricStore提供了兼容Prometheus的查询接口,您可以直接通过Prometheus数据源方式对接到Grafana进行可视化演示。本文介绍配置Prometheus监控数据为Grafana数据源的操作步骤。 前提条件 已安装Grafana。具体操作,请参见安装Grafana。 已接入时序数据。具体操作,请参见通过Remote Write协…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。