Configuration d'un chemin privé Network Load Balancer for VPC
{: tag-vpc}[Virtual Private Cloud] 4.16 et versions ultérieures
Dans les environnements VPC entièrement privés, sans accès public à l'Internet, vous pouvez utiliser un équilibreur de charge Private Path Network pour équilibrer le trafic réseau circulant vers les applications exécutées dans vos clusters VPC. Pour plus d'informations, voir les cas d'utilisation du service Private Path.
Prérequis
-
Si vous n'avez pas encore d'application en cours d'exécution, déployez une application sur votre cluster. Prenez soin d'ajouter un libellé à votre déploiement dans la section "metadata" de votre fichier de configuration de déploiement. Ce libellé personnalisé identifie tous les pods dans lesquels s'exécute votre application afin de pouvoir les inclure dans l'équilibrage de charge.
Configuration du service LoadBalancer
-
Copiez la configuration
LoadBalanceret enregistrez-la dans un fichier appelélb.yaml.apiVersion: v1 kind: Service metadata: name: <app_name>-vpc-nlb-<VPC_zone> annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer" service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "private-path" # Required service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private" # Required service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets: "<subnet_ID>" spec: type: LoadBalancer selector: <selector_key>: <selector_value> ports: - name: http protocol: TCP port: 8080 targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. - name: https protocol: TCP port: 443 targetPort: 443 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. externalTrafficPolicy: Local # Specify Local or Cluster. -
Personnalisez les champs en fonction de votre cas d'utilisation. Pour une liste complète des annotations, voir Annotations et spécifications.
-
Sauvegardez vos modifications.
-
Déployez le service Load Balancer sur votre cluster.
oc apply -f lb.yaml
Création d'un service Private Path
Suivez les instructions pour créer un service de chemin privé.
Configuration d'une passerelle privée virtuelle pour points finaux
Maintenant que vous avez configuré un service d'équilibreur de charge, vous devez définir une passerelle VPE (Virtual Private Endpoint) pour accéder aux applications de votre cluster.
Pour plus d'informations, voir Création d'une passerelle de point d'extrémité dans l'interface utilisateur.
Connexion à vos applications par l'intermédiaire de votre VPE
Pour plus d'informations sur la connexion à vos applications via votre VPE, voir Accéder à votre point de terminaison privé virtuel après avoir configuré votre passerelle de point de terminaison.
Annotations et spécifications
Examinez les annotations et les spécifications obligatoires et facultatives de VPC NLB.
Annotations et spécifications requises
externalTrafficPolicy- Spécifiez
LocalouCluster. - Définissez la valeur
Localpour conserver l'adresse IP source des demandes client émises vers vos applications. Ce paramètre empêche le trafic entrant d'être transféré vers un autre nœud. Cette option configure également les contrôles d'intégrité HTTP. - Si
Clusterest défini, DSR n'est implémenté qu'à partir du noeud worker auquel l'équilibreur de charge de réseau VPC achemine initialement la demande entrante. Une fois la demande reçue, elle est transmise à un nœud de travail qui contient le module d'application, qui peut se trouver dans une zone différente. La réponse du pod d'application est envoyée au noeud worker d'origine et ce dernier utilise DSR pour envoyer la réponse directement au client, en contournant l'équilibreur de charge de réseau VPC. Cette option configure également les contrôles d'intégrité TCP.
Annotations et spécifications facultatives
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name- Ajoutez un nom unique pour que votre équilibreur de charge VPC soit persistant. Les équilibreurs de charge VPC persistants ne sont pas supprimés lorsque le cluster auquel ils appartiennent est supprimé. Pour plus d'informations, voir Équilibreurs de charge VPC persistants. Cette annotation ne peut être définie que lors de la création de l'équilibreur de charge. Il ne peut pas être utilisé dans une opération de mise à jour.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol- Cette annotation définit le protocole de contrôle de santé sur la ressource d'équilibreur de charge VPC associée au service d'équilibreur de charge Kubernetes. Les options disponibles sont
http,httpsoutcp. Habituellement, le protocole de contrôle de santé VPC LB est déterminé par la valeur du paramètreexternalTrafficPolicydans la spécification de service de l'équilibreur de charge Kubernetes. Toutefois, cette annotation ne tient pas compte de cette logique. Cette annotation ne modifie pas la façon dont Kubernetes, et kube-proxy en particulier, se comporte par rapport aux différents paramètres deexternalTrafficPolicy service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port- Le port de l' TCP, utilisé pour les contrôles d'intégrité. Cette annotation ne s'applique que si
ibm-load-balancer-cloud-provider-vpc-health-check-protocolest également spécifié. Si le port TCP spécifié se situe en dehors de la plage de ports des nœuds Kubernetes (30 000-32 767), le groupe de sécurité VPC appliqué aux nœuds de travail du cluster doit être modifié afin d'autoriser le trafic entrant sur ce port. Si cette annotation est appliquée à un service de répartition de charge « Kubernetes » associé à un ALB VPC, les règles sortantes du groupe de sécurité attribué à l’ALB VPC doivent être modifiées afin d’autoriser le trafic sortant vers le port TCP spécifié. Pour plus d'informations, voir Comprendre la mise en réseau sécurisée par défaut des clusters VPC et Créer et gérer des groupes de sécurité VPC. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets- Annotation permettant de spécifier le sous-réseau à utiliser pour attribuer les adresses IP à la ppNLB. Ces adresses IP ne sont utilisées qu'en interne. La valeur peut être un identifiant de sous-réseau VPC, un nom de sous-réseau VPC ou
une adresse CIDR de sous-réseau VPC. Vous ne devez spécifier qu'un seul sous-réseau. Tout le trafic entrant semble provenir de ces adresses IP. Bien que toutes les adresses se trouvent dans une seule zone, la ppNLB gère toujours le trafic
entrant de toutes les zones. Si cette zone spécifique est mise hors service, le trafic entrant en provenance des autres zones continue de fonctionner. Si vous ne spécifiez pas cette annotation, le sous-réseau est automatiquement sélectionné
et le sous-réseau du nœud de travail en grappe qui a le plus d'adresses IP libres disponibles est utilisé. Pour afficher les sous-réseaux dans tous les groupes de ressources, exécutez
ibmcloud oc subnets --provider vpc-gen2 --vpc-id VPC_ID --zone ZONE. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector- Annotation permettant de spécifier un sélecteur d'étiquette de nœud de travail. Vous pouvez configurer des nœuds de travail spécifiques dans votre cluster pour recevoir du trafic en spécifiant des clés de sélection d'étiquettes. Vous ne
pouvez inclure qu'un seul sélecteur d'étiquette dans l'annotation, et ce sélecteur doit être spécifié au format
"key=value". Si cette annotation n'est pas spécifiée, tous les nœuds de travail de votre cluster sont configurés pour recevoir le trafic provenant du VPC NLB. Cette annotation prévaut sur l'annotationservice.kubernetes.io/ibm-load-balancer-cloud-provider-zone, et toutes les étiquettesdedicated: edgeprésentes sur les nœuds de travail sont ignorées. Pour limiter le trafic à une zone spécifique, vous pouvez utiliser cette annotation pour spécifier les nœuds de travail dans cette zone. Notez que la définition d'une nouvelle étiquette sur un nœud de travailleur de cluster ne configure pas automatiquement le nœud de travailleur pour recevoir du trafic ; vous devez recréer ou mettre à jour le VPC NLB pour que le nœud de travailleur nouvellement étiqueté reçoive du trafic. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-path- Le chemin d'accès au contrôle de santé URL pour les contrôles de santé HTTP et HTTPs. Cette annotation ne s'applique que si
ibm-load-balancer-cloud-provider-vpc-health-check-protocolvauthttpouhttps. Le chemin d'accès URL doit être au format d'une cible de demande de forme d'origine. Si cette annotation n'est pas spécifiée et que l'annotationibm-load-balancer-cloud-provider-vpc-health-check-protocolest définie surhttpouhttps, la valeur par défaut/est appliquée. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay- Facultatif. Nombre de secondes d'attente entre les tentatives de contrôle de l'état de santé. Par défaut, cette valeur est fixée à
5, avec un minimum de2et un maximum de60. Cette valeur doit être supérieure à la valeuribm-load-balancer-cloud-provider-vpc-health-check-timeout, qui est fixée à2par défaut. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout- Facultatif. Nombre de secondes d'attente pour une réponse à un contrôle de santé. Par défaut, cette valeur est fixée à
2, avec un minimum de1et un maximum de59. Cette valeur doit être inférieure à la valeuribm-load-balancer-cloud-provider-vpc-health-check-delay, qui est fixée à5par défaut. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-retries- Nombre maximal de tentatives de contrôle de santé pour l'équilibreur de charge VPC. Par défaut, cette valeur est fixée à
2, avec un minimum de1et un maximum de10. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-member-quota- Optionnel. Le nombre de nœuds de travail par zone vers lesquels l'équilibreur de charge se dirige. La valeur par défaut est de 8. Pour un cluster dont les nœuds de travail sont répartis dans trois zones, cela signifie que l'équilibreur de charge achemine le trafic vers 24 nœuds de travail au total. Le nombre total de nœuds de travail dans toutes les zones vers lesquelles l'équilibreur de charge se dirige ne peut pas dépasser 50. Si la grappe compte moins de 50 nœuds de travail dans toutes les zones, spécifiez 0 pour router vers tous les nœuds de travail d'une zone.
selector- Clé de libellé (
<selector_key>) et valeur (<selector_value>) que vous avez utilisées dans la sectionspec.template.metadata.labelsdu déploiement de votre application YAML. Ce libellé personnalisé identifie tous les pods dans lesquels s'exécute votre application afin de pouvoir les inclure dans l'équilibrage de charge. port- Port sur lequel le service est à l'écoute.
targetPort- Facultatif : Port vers lequel le service achemine le trafic. L'application s'exécutant dans le pod doit être à l'écoute du trafic entrant de type « TCP » sur ce port de destination. Le port cible est souvent défini de manière statique dans l'image qui tourne dans le module d'application. Le port cible configuré dans le pod est différent du port du nœud pour le service et peut également être différent du port externe configuré sur le VPC LB.