当前位置:首页 > 行业动态 > 正文

ack节点挂载eip

Ack节点挂载EIP是指将弹性公网IP( EIP)与ACK(阿里云容器服务 Kubernetes 版)集群中的节点进行关联,使节点可以通过该EIP访问外网。

在ACK(阿里云容器服务 Kubernetes 版)中,为节点挂载EIP主要有以下两种方式:

1、自动分配弹性公网EIP

前提条件:确保集群的安全组已开放相关端口,如80端口等;需要升级ack-virtual-node组件到v1.0.0.7-aliyun及之后版本。

操作步骤:登录容器服务管理控制台,在左侧导航栏选择集群,进入集群列表页面后单击目标集群名称,再选择工作负载>无状态,然后单击使用YAML创建资源,选择示例模板或自定义,可以使用如下YAML示例模板创建Pod,通过指定k8s.aliyun.com/eci-with-eiptrue,ACK Serverless和虚拟节点会自动为此Pod分配一个EIP,并绑定到Pod上。

示例代码

apiVersion: v1

kind: Pod

metadata:

name: nginx

annotations:

k8s.aliyun.com/eci-with-eip: "true"

spec:

containers:

image: nginx:alpine

imagePullPolicy: Always

ack节点挂载eip

name: nginx

ports:

containerPort: 80

name: http

protocol: TCP

restartPolicy: OnFailure

注意事项:可以通过Annotationk8s.aliyun.com/eip-bandwidth指定EIP的带宽,默认值为5Mbps;也可以通过Annotationk8s.aliyun.com/eip-common-bandwidth-package-id让EIP绑定共享带宽,如果创建的是Deployment,那么Deployment中的每一个Pod都将会被挂载不同的EIP,需谨慎使用此操作,此方式中EIP为动态分配,其生命周期与Pod相同,当删除Pod时,动态分配的EIP也会一并删除。

2、指定弹性公网IP实例ID

前提条件:申请的EIP和集群必须在同一地域。

操作步骤:首先登录VPC管理控制台购买弹性公网IP;然后登录容器服务管理控制台,在左侧导航栏选择集群,进入集群列表页面后单击目标集群名称,再选择工作负载>无状态,接着单击使用YAML创建资源,选择示例模板或自定义,可以使用如下YAML示例模板创建Pod,通过指定Pod的Annotationk8s.aliyun.com/eci-eip-instanceid为EIP实例ID。

ack节点挂载eip

示例代码

apiVersion: v1

kind: Pod

metadata:

name: nginx

annotations:

k8s.aliyun.com/eci-eip-instanceid: "<youreipInstanceId>"

spec:

containers:

image: nginx:alpine

ack节点挂载eip

imagePullPolicy: Always

name: nginx

ports:

containerPort: 80

name: http

protocol: TCP

restartPolicy: OnFailure

注意事项<youreipInstanceId>需要替换成步骤1中获取的EIP实例ID,如果同时设置了自动分配弹性公网EIP和指定弹性公网IP实例ID,则手动指定的EIP无效。

在ACK中为节点挂载EIP有自动分配和指定实例ID两种方式,各有优缺点和适用场景,用户可根据自身需求选择合适的方式来实现节点的公网访问能力。