适用于依赖容器固定 IP 的场景。例如,传统架构迁移到容器平台及针对 IP 做安全策略限制。 对 IP 无限制的业务不推荐您使用固定 IP 模式。
您可以通过以下两种方式启用固定 IP:
说明:使用此方式启用 VPC-CNI,通过控制台或通过 yaml 创建工作负载,Pod 均默认使用弹性网卡。
说明:
- 为 GlobalRouter 模式附加固定 IP VPC-CNI 模式即创建集群时选择 Global Router 网络插件,后续在集群基本信息页面开启 VPC-CNI 模式(两种模式默认混用)。
- 使用此方式启用 VPC-CNI,Pod 默认不使用弹性网卡。
注意:
- 针对固定 IP 场景,启用 VPC-CNI 后需要设置 IP 回收策略,即设置 Pod 销毁后需要退还 IP 的时长。
- 非固定 IP 的 Pod 销毁后可立即释放 IP(非释放回 VPC,释放回容器管理的 IP 池),不受此设置的影响。
在 GlobalRouter 模式附加 VPC-CNI 模式下,如果您存在业务需要在容器服务 TKE 中部署,并存在固定 Pod IP 的需求,您可以使用固定 IP 类型的 StatefulSet。TKE 提供扩展 StatefulSet 固定 IP 的能力,该类型的 StatefulSet 创建的 Pod 将通过弹性网卡分配真实的 VPC 内的 IP 地址。容器服务 TKE VPC-CNI 的插件负责 IP 分配,当 Pod 重启或迁移,可实现 IP 地址不变。
您可以通过创建固定 IP 类型 StatefulSet 来满足以下场景:
注意:固定 IP 类型 StatefulSet 存在使用限制,仅支持 StatefulSet 生命周期内固定 IP。
您可通过以下两种方法创建固定 IP:
通过控制台创建固定 IP 类型 StatefulSet
通过 Yaml 创建
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
k8s-app: busybox
name: busybox
namespace: default
spec:
replicas: 3
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
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"
requests:
tke.cloud.tencent.com/eni-ip: "1"
tke.cloud.tencent.com/networks: "tke-route-eni"
表明 Pod 使用共享网卡的 VPC-CNI 模式,如果使用的是独立网卡的 VPC-CNI 模式,请将值修改成 "tke-direct-eni"
。tke.cloud.tencent.com/vpc-ip-claim-delete-policy
,默认是 “Immediate”,Pod 销毁后,关联的 IP 同时被销毁。如需固定 IP,则需设置成 “Never”,Pod 销毁后 IP 也将会保留,那么下一次同名的 Pod 拉起后,会使用之前的 IP。tke.cloud.tencent.com/eni-ip
。如果是独立网卡的 VPC-CNI 模式,则添加 tke.cloud.tencent.com/direct-eni
。
本页内容是否解决了您的问题?