È 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.