Vous pouvez spécifier une plage d'adresses IP pour un StatefulSet avec l'annotation ncp/ip_range. NCP alloue des adresses IP persistantes de la plage aux espaces du StatefulSet en fonction des sous-réseaux de l'espace de noms.

Cette fonctionnalité n'est prise en charge qu'en mode de stratégie. Pour activer cette fonctionnalité, définissez statefulset_ip_range sur True dans la section [K8s] de ncp.ini. La valeur par défaut est False. Une fois défini sur True, vous ne devez pas le définir de nouveau sur False.

Exemple de spécification de l'annotation 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:
      ...
Si une erreur se produit lorsque NCP vérifie la plage d'adresses IP ou alloue une adresse à partir de la plage, le StatefulSet sera annoté avec ncp/error.ip_range:<error>. Les erreurs possibles sont :
  • INVALID_IP_RANGE : la plage d'adresses IP ne se trouve pas dans l'un des sous-réseaux des espaces de noms, elle se trouve dans plusieurs sous-réseaux ou un espace existant utilise déjà une adresse IP dans la plage.
  • IP_RANGE_EXHAUSTED : ncp ne peut pas allouer une adresse IP à partir de la plage, car toutes les adresses ont été allouées.