为Pod指定交换机和安全组

默认情况下,Pod会使用集群配置的交换机和安全组。如果您有特殊需求,可以通过添加Annotation的方式,为Pod指定其他交换机和安全组。

指定交换机

创建ACS集群时,可以为集群配置多个交换机来提高集群可用性。默认情况下,创建Pod时,会自动从集群配置的交换机中随机选择一个交换机,为Pod分配对应网段的私网IP地址。如果您有特殊需求,可以通过以下Annotation为Pod指定交换机。

Pod Annotation

说明

network.alibabacloud.com/vswitch-ids: "vsw-xx1,vsw-xx2"

为Pod指定交换机。要求如下:

  • 指定的交换机必须是集群已配置的交换机。

  • 支持指定一个或多个交换机。指定多个时,会按顺序尝试。

Annotation请添加在Pod metadata下,例如:创建Deployment时,Annotation需添加在spec.template.metadata下。配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-vsw
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
      annotations:
        network.alibabacloud.com/vswitch-ids: "vsw-uf65vd1j5iml8ydw3****"
    spec:
      containers:
      - name: nginx
        image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
        ports:
        - containerPort: 80

指定安全组

创建ACS集群时,会自动创建一个安全组。默认情况下,创建Pod时,会将Pod的网卡绑定至集群配置的安全组,即将Pod加入到该安全组中。如果您有特殊需求,可以通过以下Annotation为Pod指定安全组。

说明

对于安全组中的Pod,您可以添加安全组规则来控制其出入流量。关于如何添加安全组规则,请参见添加安全组规则

Pod Annotation

说明

network.alibabacloud.com/security-group-ids: "sg-xx1"

为Pod指定安全组。

Annotation请添加在Pod metadata下,例如:创建Deployment时,Annotation需添加在spec.template.metadata下。配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-sg
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
      annotations:
        network.alibabacloud.com/security-group-ids: "sg-uf6f7toxvc6qhlnf****"
    spec:
      containers:
      - name: nginx
        image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
        ports:
        - containerPort: 80