Kube-OVN 支持通过 annotation ovn.kubernetes.io/ip_pool
给 Workload(Deployment/StatefulSet/DaemonSet/Job/CronJob)设置固定 IP。Workload 下的 Pod 会自动选择 ovn.kubernetes.io/ip_pool
中指定的 IP 并保证不会冲突。
Deployment 固定 IP 示例
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- namespace: ls1
- name: starter-backend
- labels:
- app: starter-backend
- spec:
- replicas: 2
- selector:
- matchLabels:
- app: starter-backend
- template:
- metadata:
- labels:
- app: starter-backend
- annotations:
- ovn.kubernetes.io/ip_pool: 10.16.0.15,10.16.0.16,10.16.0.17
- spec:
- containers:
- - name: backend
- image: nginx:alpine
对 Workload 使用固定 IP 需要注意一下几点:
ovn.kubernetes.io/ip_pool
中的 IP 应该属于所在子网的 CIDR 内ovn.kubernetes.io/ip_pool
中的 IP 不能和已使用的 IP 冲突- 当
ovn.kubernetes.io/ip_pool
中的 IP 数量小于 replicas 数量时,多出的 Pod 将无法创建。你需要根据 Workload 的更新策略以及扩容规划调整ovn.kubernetes.io/ip_pool
中 IP 的数量