赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 注册集群
  6. 接入云上Serverless算力
  7. ECI算力
  8. ECI算力高级配置
  9. 在ECI上使用网络策略

在ECI上使用网络策略

  • ECI算力高级配置
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

注册集群网络策略(Network Policy)提供基于策略的网络控制。如果您希望在IP地址或者端口层面控制网络流量,可以为集群中特定应用使用网络策略。本文介绍如何使用ACK One注册集群的网络策略及常见的使用场景。

前提条件

  • 自建Kubernetes集群版本需在1.20.0及以上。

  • 已创建注册集群,并将自建Kubernetes集群接入注册集群。具体操作,请参见创建注册集群。

注意事项

  • Network Policy功能仅支持在ACK One注册集群的弹性容器实例ECI中使用。

  • 暂不支持IPv6地址的网络策略。

  • 暂不支持NetworkPolicy中EndPort配置。

  • NetworkPolicy规则允许通过LabelSelector选择Namespace或者Pod。但当Pod中的NetworkPolicy数量增大时,不仅会使规则生效时间延长,而且大量的NetworkPolicy规则也会对您的集群管理、问题排查带来困扰,因此建议您集群内的NetworkPolicy数量小于100个。

步骤一:开启网络策略

  1. 安装组件Poseidon。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

    2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。

    3. 在组件管理页面,单击网络页签,在Poseidon组件所在卡片的右下方,单击安装。

    4. 在安装组件Poseidon页面,选中为ECI实例启用NetworkPolicy,然后单击确认。

  2. 安装组件ack-virtual-node。

    1. 在组件管理页面,单击核心组件页签,在ack-virtual-node组件所在卡片的右下方,单击安装。

    2. 在安装组件ack-virtual-node页面,根据实际网络接入情况选择是否启用VPC内网访问,然后单击确认。

      组件安装成功后,会在卡片右上角出现已安装字样。

    说明

    若您之前已安装ack-virtual-node组件,需要将该组件升级至2.10.0及以上版本。具体操作,请参见管理组件。

步骤二:使用网络策略

  1. 执行如下命令,创建网络策略。该策略描述在default命名空间中,允许带有app: busybox标签的Pod通过TCP的80端口向具有app: nginx标签的Pod发送流量。除非具有其他网络策略,否则将阻止来自其他Pod的流量。

    kubectl apply -f - <<EOF
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: test-network-policy
      namespace: default
    spec:
      podSelector:
        matchLabels:
          app: nginx
      policyTypes:
        - Ingress
      ingress:
        - from:
            - podSelector:
                matchLabels:
                  app: busybox
          ports:
            - protocol: TCP
              port: 80
    EOF
  2. 执行如下命令,创建标签为app: nginx的应用。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx
      name: nginx-deployment
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            alibabacloud.com/eci: 'true'
            app: nginx
        spec:
          containers:
            - image: 'registry.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 500m
    
    EOF
  3. 执行如下命令,查看Nginx应用状态并记录Pod IP地址。

    kubectl get pod -owide | grep nginx-deployment

    预期输出:

    NAME                                   READY   STATUS    RESTARTS   AGE   IP                NODE                     NOMINATED NODE   READINESS GATES
    nginx-deployment-698d746d4c-nXXXXXXx   1/1     Running   0          35s   192.168.XXX.XXX   cn-heyuan.10.108.XX.XX   <none>           <none>
  4. 执行如下命令,创建标签为app: busybox的应用。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: busybox
      name: busybox-deployment
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: busybox
      template:
        metadata:
          labels:
            alibabacloud.com/eci: 'true'
            app: busybox
        spec:
          containers:
            - args:
                - '-c'
                - ' sleep 360000000'
              command:
                - /bin/sh
              image: 'registry-cn-hangzhou.ack.aliyuncs.com/dev/busybox:1'
              imagePullPolicy: IfNotPresent
              name: busybox
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 500m
    EOF
  5. 登录到busybox容器内执行如下命令,访问Nginx应用的Pod IP地址。

    wget http://192.168.XXX.XXX  

    预期输出:

    Connecting to 192.168.XXX.XXX:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 612 [text/html]
    Saving to: 'index.html'
    
    index.html                                               100%[================================================================================================================================>]     612  --.-KB/s    in 0s      
    
    2024-11-19 20:12:09 (1.66 MB/s) - 'index.html' saved [612/612]

    连接Nginx的进度为100%时,说明请求成功,可以正常访问Nginx服务。

  6. 执行如下命令,创建标签为app: busybox-demo的应用。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: busybox-demo
      name: busybox-deployment-demo
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: busybox-demo
      template:
        metadata:
          labels:
            alibabacloud.com/eci: 'true'
            app: busybox-demo
        spec:
          containers:
            - args:
                - '-c'
                - ' sleep 360000000'
              command:
                - /bin/sh
              image: 'registry-cn-hangzhou.ack.aliyuncs.com/dev/busybox:1'
              imagePullPolicy: IfNotPresent
              name: busybox-demo
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 500m
    kubectl apply -f - <<EOF
  7. 登录到busybox-demo容器执行如下命令,访问Nginx应用的Pod IP地址。

    wget http://192.168.XXX.XXX

    预期输出:

    Connecting to 192.168.XXX.XXX:80... 
    failed: Connection timed out.

    连接Nginx超时,说明网络策略生效。

相关文章

拉取自建镜像仓库的镜像 2025-04-18 18:14

拉取自建镜像仓库中的镜像时,可能会碰到因协议不同或者证书认证失败而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书的情况下,如何拉取自建镜像仓库中的镜像来创建ECI Pod或者ImageCache。 功能说明 拉取自建镜像仓库中的镜像时,可能会碰到“ErrImageP

通过免密组件拉取容器镜像 2025-04-18 18:13

通过aliyun-acr-credential-helper组件可以在自建Kubernetes集群中免密拉取ACR个人版或企业版私有镜像。本文列举两个场景介绍如何使用免密组件拉取私有镜像。 前提条件 已创建注册集群,并将自建K

使用ImageCache加速创建ECI Pod 2025-04-18 18:13

阿里云以ImageCache CRD的方式将ECI的镜像缓存(即ImageCache)功能提供给Kubernetes用户,以便在Kubernetes集群中也可以使用该功能来加速创建ECI Pod。本文介绍ImageCache的功能,以及如何创建和使用ImageCache。 ImageCache介绍

自定义设置ECI Pod的hosts 2025-04-18 18:13

某些场景下,您可能需要自定义设置ECI Pod的hosts,例如拉取自建镜像仓库的镜像时,需要通过hosts明确镜像仓库的实际IP地址。本文介绍如何自定义设置ECI Pod级别的hosts(即/etc/hosts)。 配置说明 您可以通过

为ECI Pod配置自定义DNS 2025-04-18 18:13

混合云场景下,如果需要使用内网的镜像仓库来拉取镜像,或者容器需要访问内网中的域名,则需要配置ECI Pod使用的DNS为用户内网DNS,以便解析内网域名。本文介绍如何为ECI Pod配置自定义DNS。 背景信息 混合云场景下,例如Kubernetes集群包含本地节点,镜像仓库在本地的情况下,如果使用

在ECI上使用网络策略 2025-04-18 18:13

注册集群网络策略(Network Policy)提供基于策略的网络控制。如果您希望在IP地址或者端口层面控制网络流量,可以为集群中特定应用使用网络策略。本文介绍如何使用ACK One注册集群的网络策略及常见的使用场景。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号