Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Les services Kubernetes peuvent être atteints depuis l'intérieur d'un cluster via :
-
Une adresse IP de cluster affectée automatiquement par Kubernetes
-
Toute adresse IP que vous spécifiez pour la propriété
externalIPs
dans une spécification de service. Les adresses IP externes ne sont pas gérées par Kubernetes et relèvent de la responsabilité de l'administrateur du cluster. Les adresses IP externes spécifiées avecexternalIPs
sont différentes de l'adresse IP externe affectée à un service de typeLoadBalancer
par un fournisseur de cloud.
Pour en savoir plus sur les services Kubernetes, consultez ServiceexternalIPs
dans une spécification de service.
-
Déployez
cert-manager
pour gérer les certificats webhook. Pour plus d'informations, consultez la documentation cert-manager. kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
-
Vérifiez que les
cert-manager
pods fonctionnent.kubectl get pods -n cert-manager
L'exemple qui suit illustre un résultat.
NAME READY STATUS RESTARTS AGE cert-manager-58c8844bb8-nlx7q 1/1 Running 0 15s cert-manager-cainjector-745768f6ff-696h5 1/1 Running 0 15s cert-manager-webhook-67cc76975b-4v4nk 1/1 Running 0 14s
-
Passez en revue vos services existants pour vous assurer qu'aucun d'entre eux ne possède d'adresse IP externe qui ne soit contenue dans le bloc CIDR auquel vous souhaitez limiter les adresses.
kubectl get services -A
L'exemple qui suit illustre un résultat.
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cert-manager cert-manager ClusterIP 10.100.102.137 <none> 9402/TCP 20m cert-manager cert-manager-webhook ClusterIP 10.100.6.136 <none> 443/TCP 20m default kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 2d1h externalip-validation-system externalip-validation-webhook-service ClusterIP 10.100.234.179 <none> 443/TCP 16s kube-system kube-dns ClusterIP 10.100.0.10 <none> 53/UDP,53/TCP 2d1h my-namespace my-service ClusterIP 10.100.128.10 192.168.1.1 80/TCP 149m
Si l'une des valeurs correspond à des adresses IP qui ne se trouvent pas dans le bloc auquel vous souhaitez restreindre l'accès, vous devez modifier les adresses pour qu'elles se trouvent dans le bloc et redéployer les services. Par exemple, le
my-service
service indiqué dans la sortie précédente possède une adresse IP externe qui ne figure pas dans l'exemple de bloc CIDR de l'étape 5. -
Téléchargez le manifeste du webhook IP externe. Vous pouvez également afficher le code source pour le webhook
sur GitHub. curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/externalip-webhook.yaml
-
Spécifiez des blocs d'adresse CIDR. Ouvrez le fichier téléchargé dans l'éditeur et supprimez le
\#
au début des lignes suivantes.#args: #- --allowed-external-ip-cidrs=10.0.0.0/8
Remplacez
10.0.0.0/8
par votre propre bloc d'adresse CIDR. Vous pouvez spécifier autant de blocs que vous le souhaitez. Si vous spécifiez plusieurs blocs, ajoutez une virgule entre les blocs. -
Si votre cluster ne se trouve pas dans la
us-west-2
AWS régionus-west-2
, remplacez602401143452
, etamazonaws.com
dans le fichier par les commandes suivantes. Avant d'exécuter les commandes, remplacezregion-code
et111122223333
par la valeur de votre AWS région dans la liste dans Afficher les registres d'images de conteneurs Amazon pour les modules complémentaires Amazon EKS.sed -i.bak -e 's|602401143452|111122223333|' externalip-webhook.yaml sed -i.bak -e 's|us-west-2|region-code|' externalip-webhook.yaml sed -i.bak -e 's|amazonaws.com||' externalip-webhook.yaml
-
Appliquez le manifeste à votre cluster.
kubectl apply -f externalip-webhook.yaml
Toute tentative de déploiement d'un service sur votre cluster avec une adresse IP spécifiée ne figurant pas dans les blocs que vous avez spécifiés à l'étape Spécifier les blocs CIDR échouera.
externalIPs