Dans certains scénarios métier, les pods workers doivent utiliser une adresse IP fixe. Cette rubrique explique comment spécifier une adresse IP privée pour un pod basé sur Elastic Container Instance lors de sa création.
Description de la fonctionnalité
Par défaut, le système attribue aléatoirement une adresse IP privée à un pod basé sur Elastic Container Instance à partir du bloc CIDR du vSwitch que vous avez spécifié dans le profil eci (eci-profile) lors de la création du pod. Dans certains scénarios métier, il peut être nécessaire de spécifier les adresses IP privées des pods. Par exemple, si vous souhaitez migrer un service, vous pouvez attribuer l'adresse IP de l'ancien pod au nouveau pod après avoir supprimé l'ancien. Cela garantit la continuité du service.
Pour plus d'informations sur la configuration des vSwitches pour les clusters ou les pods, consultez la rubrique Créer des pods dans plusieurs zones.
Limites
Les adresses IP privées que vous spécifiez pour les pods doivent être des adresses IPv4.
Description de la configuration
Vous pouvez ajouter l'annotation k8s.aliyun.com/eci-private-ip-address aux métadonnées d'un pod afin de lui spécifier une adresse IP privée. Tenez compte des points suivants :
L'adresse IP spécifiée doit appartenir au bloc CIDR du vSwitch indiqué dans le paramètre
vSwitchIdsdu profil eci. Assurez-vous que cette adresse IP est disponible.Il n'est pas possible de spécifier plusieurs adresses IP. Si vous ajoutez l'annotation lors de la création d'une ressource telle qu'un Deployment, vous ne pouvez configurer qu'un seul réplica pour le pod. Si vous configurez plusieurs réplicas, un seul pod sera créé. Les autres pods échoueront car ils ne pourront pas recevoir d'adresse IP.
Exemple de configuration
-
Spécifiez une adresse IP privée pour créer un pod.
kubectl create -f private-ip-test.yamlContenu exemple du fichier private-ip-test.yaml :
apiVersion: v1 kind: Pod metadata: name: private-ip-test labels: alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-private-ip-address: "172.16.0.11" # Specify a private IP address for the pod. spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 name: test-container -
Vérifiez l'adresse IP privée du pod.
kubectl get pod private-ip-test -o wideLa figure suivante illustre un exemple de sortie. Le système a attribué l'adresse IP privée spécifiée au pod.
:~$ kubectl get pod private-ip-test -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES private-ip-test 1/1 Running 0 3m41s 172.16.0.11 virtual-kubelet-cn-beijing-h <none> <none>