您可以通过下述方式为 VPC-CNI 模式的 Pod 直接绑定弹性公网 IP(EIP)。
IPAMDofTKE_QCSRole
,单击角色名称进入角色详情页面。QcloudAccessForIPAMDRoleInQcloudAllocateEIP
, 然后勾选已创建的预设策略 QcloudAccessForIPAMDRoleInQcloudAllocateEIP
。单击确定,完成为 IPAMD 组件角色添加 EIP 接口访问权限操作。该策略包含了 IPAMD 组件操作弹性公网 IP 所需的所有权限。如需自动关联 EIP,可参考以下 Yaml 示例:
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
k8s-app: busybox
name: busybox
namespace: default
spec:
replicas: 1
selector:
matchLabels:
k8s-app: busybox
qcloud-app: busybox
serviceName: ""
template:
metadata:
annotations:
tke.cloud.tencent.com/networks: "tke-route-eni"
tke.cloud.tencent.com/vpc-ip-claim-delete-policy: Never
tke.cloud.tencent.com/eip-attributes: '{"Bandwidth":"100","ISP":"BGP"}'
tke.cloud.tencent.com/eip-claim-delete-policy: "Never"
creationTimestamp: null
labels:
k8s-app: busybox
qcloud-app: busybox
spec:
containers:
- args:
- "10000000000"
command:
- sleep
image: busybox
imagePullPolicy: Always
name: busybox
resources:
limits:
tke.cloud.tencent.com/eni-ip: "1"
tke.cloud.tencent.com/eip: "1"
requests:
tke.cloud.tencent.com/eni-ip: "1"
tke.cloud.tencent.com/eip: "1"
tke.cloud.tencent.com/eip
,从而让调度器保证 Pod 调度到的节点仍有 EIP 资源可使用。ISP
参数可配置为 BGP
、CMCC
、CTCC
、CUCC
,分别对应普通线路 BGP IP、静态单线 IP(网络运营商中国移动、中国电信、中国联通)。若不填写,则默认值为 100 Mbps 和 BGP。流量按小时后付费
。Pod 启用自动关联 EIP 特性后,网络组件会为该 Pod 在同 namespace 下创建同名的 CRD 对象 EIPClaim
。该对象描述 Pod 对 EIP 的需求。
对于非固定 EIP 的 Pod,其 Pod 销毁后 EIPClaim
也会被销毁,Pod 关联的 EIP 随之销毁回收。而对于固定 EIP 的 Pod,其 Pod 销毁后 EIPClaim
仍然保留,EIP 也因此保留。同名的 Pod 启动后会使用同名的 EIPClaim
关联的 EIP,从而实现 EIP 保留。
下面介绍三种回收 EIP 的方法:过期回收、手动回收及级联回收。
在 创建集群 页面,容器网络插件选择 VPC-CNI 模式并且勾选开启支持固定 Pod IP 支持,如下图所示:
在高级设置中设置 IP 回收策略,可以设置 Pod 销毁后多少秒回收保留的固定 IP。如下图所示:
对于存量集群,也可支持变更:
kubectl edit deploy tke-eni-ipamd -n kube-system
。spec.template.spec.containers[0].args
中加入/修改启动参数。- --claim-expired-duration=1h # 可填写不小于 5m 的任意值
对于急需回收的 EIP,找到对应的 Pod 的名称空间和名称,执行以下命令通过手动回收:
注意:需保证回收的 EIP 对应的 Pod 已经销毁,否则会再次触发关联绑定 EIP。
kubectl delete eipc <podname> -n <namespace>
目前的固定 EIP 与 Pod 强绑定,而与具体的 Workload 无关(例如 deployment、statefulset 等)。Pod 销毁后,固定 EIP 不确定何时回收。TKE 现已实现删除 Pod 所属的 Workload 后即刻删除固定 EIP。要求 IPAMD 组件版本在 v3.3.9+(可通过镜像 tag 查看)。
以下步骤介绍如何开启级联回收:
kubectl edit deploy tke-eni-ipamd -n kube-system
。spec.template.spec.containers[0].args
中加入启动参数:- --enable-ownerref
修改后,ipamd 会自动重启并生效。生效后,增量 Workload 可实现级联删除固定 EIP,存量 Workload 暂不能支持。
本页内容是否解决了您的问题?