日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

為Pod配置獨立虛擬交換機和安全組

您可以在虛擬節點上通過集群級別的自定義資源PodNetworking來描述網絡配置,從而支持在虛擬節點上為每個Pod配置獨立的虛擬交換機、安全組。本文介紹如何在ACK ServerlessACK+ECI場景下,通過創建PodNetworking為Pod配置獨立虛擬交換機及安全組。

索引

步驟一:創建網絡定義

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中的標簽需要保持唯一匹配。請檢查兩者是否為唯一匹配。