È possibile specificare un intervallo di indirizzi IP per StatefulSet con l'annotazione ncp/ip_range. NCP allocherà indirizzi IP persistenti dall'intervallo ai pod in StatefulSet in base alle subnet dello spazio dei nomi.
Questa funzionalità è supportata solo in modalità Criterio. Per abilitare questa funzionalità, impostare statefulset_ip_range su True nella sezione [K8s] di ncp.ini. Il valore predefinito è False. Una volta impostato su True, non sarà necessario impostarlo nuovamente su False.
Esempio di specifica dell'annotazione
ncp/ip_range:
apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx # has to match .spec.template.metadata.labels serviceName: "nginx" replicas: 3 # by default is 1 template: metadata: labels: app: nginx # has to match .spec.selector.matchLabels annotations: ncp/ip_range: 192.168.0.10-192.168.0.50 spec: ...
Se si verifica un errore quando NCP controlla l'intervallo di IP o alloca un indirizzo dall'intervallo, in StatefulSet viene aggiunta l'annotazione
ncp/error.ip_range:<error>. Gli errori possibili sono:
- INVALID_IP_RANGE: l'intervallo di IP non è incluso in alcuna subnet degli spazi dei nomi, è incluso in più subnet oppure un pod esistente sta già utilizzando un indirizzo IP nell'intervallo.
- IP_RANGE_EXHAUSTED: NCP non può allocare un indirizzo IP dall'intervallo perché tutti gli indirizzi sono stati allocati.