A SpiderIPPool resource represents a collection of IP addresses from which Spiderpool expects endpoint IPs to be assigned.
apiVersion: spiderpool.spidernet.io/v2beta1
kind: SpiderIPPool
metadata:
name: master-172
spec:
ipVersion: 4
subnet: 172.31.192.0/20
ips:
- 172.31.199.180-172.31.199.189
- 172.31.199.205-172.31.199.209
excludeIPs:
- 172.31.199.186-172.31.199.188
- 172.31.199.207
gateway: 172.31.207.253
default: true
disable: false
Field | Description | Schema | Validation |
---|---|---|---|
name | the name of this SpiderIPPool resource | string | required |
This is the IPPool spec for users to configure.
Field | Description | Schema | Validation | Values | Default |
---|---|---|---|---|---|
ipVersion | IP version of this pool | int | optional | 4,6 | |
subnet | subnet of this pool | string | required | IPv4 or IPv6 CIDR. Must not overlap |
|
ips | IP ranges for this pool to use | list of strings | optional | array of IP ranges and single IP address | |
excludeIPs | isolated IP ranges for this pool to filter | list of strings | optional | array of IP ranges and single IP address | |
gateway | gateway for this pool | string | optional | an IP address | |
vlan | vlan ID(deprecated) | int | optional | [0,4094] | 0 |
routes | custom routes in this pool (please don't set default route 0.0.0.0/0 if property gateway exists) |
list of route | optional | ||
podAffinity | specify which pods can use this pool | labelSelector | optional | kubernetes LabelSelector | |
namespaceAffinity | specify which namespaces pods can use this pool | labelSelector | optional | kubernetes LabelSelector | |
namespaceName | specify which namespaces pods can use this pool (The priority is higher than property namespaceAffinity ) |
list of strings | optional | ||
nodeAffinity | specify which nodes pods can use this pool | labelSelector | optional | kubernetes LabelSelector | |
nodeName | specify which nodes pods can use this pool (The priority is higher than property nodeAffinity ) |
list of strings | optional | ||
multusName | specify which multus net-attach-def objects can use this pool | list of strings | optional | ||
default | configure this resource as a default pool for pods | boolean | optional | true,false | false |
disable | configure whether the pool is usable | boolean | optional | true,false | false |
The IPPool status is a subresource that processed automatically by the system to summarize the current state
Field | Description | Schema |
---|---|---|
allocatedIPs | current IP allocations in this pool | string |
totalIPCount | total IP counts of this pool to use | int |
allocatedIPCount | current allocated IP counts | int |
Field | Description | Schema | Validation |
---|---|---|---|
dst | destination of this route | string | required |
gw | gateway of this route | string | required |
For details on configuring SpiderIPPool podAffinity, please read the Pod Affinity of IPPool.
For details on configuring SpiderIPPool namespaceAffinity or namespaceName, please read the Namespace Affinity of IPPool.
Notice:
namespaceName
has higher priority thannamespaceAffinity
.
For details on configuring SpiderIPPool nodeAffinity or nodeName, please read the Node Affinity of IPPool and Network topology allocation.
Notice:
nodeName
has higher priority thannodeAffinity
.
For details on configuring SpiderIPPool multusName, please read the multus Affinity of IPPool.