Cette page s'applique à Apigee, mais pas à Apigee hybrid.
Consultez la documentation d'
Apigee Edge.
Cette page décrit les étapes à suivre avant de pouvoir installer et configurer l'opérateur APIM Apigee pour Kubernetes (version Preview). Pour en savoir plus sur les avantages de l'utilisation de l'opérateur APIM, consultez la page Présentation de l'opérateur APIM Apigee pour Kubernetes.
Rôles requis
Pour obtenir les autorisations nécessaires afin de configurer les ressources requises pour installer et utiliser l'opérateur APIM, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'organisation:
-
Créer et gérer le cluster Google Kubernetes Engine (GKE) : Administrateur de conteneur (
roles/container.admin
) -
Créer et gérer des comptes de service : Administrateur de compte de service (
roles/iam.serviceAccountAdmin
) -
Créer et gérer des extensions de service :
Administrateur d'extensions de service (
roles/networkservices.serviceExtensionsAdmin
) -
Créer et gérer des groupes de points de terminaison du réseau (NEG) :
Administrateur d'instances Compute (
roles/compute.instanceAdmin
) -
Créer et gérer des services backend : Administrateur de l'équilibreur de charge Compute (
roles/compute.loadBalancerAdmin
) -
Créer et gérer des ressources Apigee : Administrateur Apigee (
roles/apigee.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Tâches de configuration requises
Avant d'installer l'opérateur APIM, assurez-vous d'effectuer les tâches suivantes pour configurer les ressources dont vous avez besoin pour utiliser cette fonctionnalité:
Provisionnez une instance Apigee à l'aide de la version
1-14-0-apigee-4
ou ultérieure.Vous pouvez consulter les versions d'instance sur la page Détails de l'instance de l'interface utilisateur d'Apigee dans la console Google Cloud.Accédez à la page Instances dans la console Google Cloud pour sélectionner une instance et afficher ses détails:
Vous pouvez utiliser l'opérateur APIM avec une organisation Apigee avec abonnement ou en paiement à l'usage. Pour en savoir plus sur le provisionnement d'instances Apigee payantes, consultez la section Avant de commencer.
Installez la Google Cloud CLI.
Une fois la Google Cloud CLI installée, exécutez la commande
gcloud components update
pour obtenir les derniers composants gcloud.- Installez et configurez l'outil de ligne de commande
kubectl
. - Installez Helm (version 3.14.3 ou ultérieure).
Créez un cluster GKE avec la fédération d'identité de charge de travail pour GKE et la passerelle GKE activées.
La fédération d'identité de charge de travail pour GKE est activée par défaut lorsque vous utilisez le mode Autopilot pour créer et gérer vos clusters. Pour en savoir plus, consultez la présentation d'Autopilot.
Pour connaître la procédure à suivre pour créer un cluster avec la fédération d'identité de charge de travail pour GKE et la passerelle GKE activées à l'aide d'Autopilot, consultez Déploiement de passerelles.
- Déployez une passerelle GKE sur votre cluster.
Vous pouvez choisir de configurer et de déployer une passerelle interne ou une passerelle externe à utiliser avec l'opérateur APIM. Si vous choisissez de déployer une passerelle interne, un sous-réseau proxy réservé et un VPC partagé sont requis. Pour les besoins de ce guide, nous vous recommandons de déployer une passerelle externe. Pour en savoir plus, consultez la section Exigences concernant le contrôleur Gateway GKE.
Pour déployer la passerelle GKE, suivez la procédure décrite dans Déployer une ressource Gateway externe. Lorsque vous créez la passerelle, utilisez la configuration
yaml
suivante:# gateway.yaml kind: Gateway apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: global-ext-lb1 namespace: default spec: gatewayClassName: gke-l7-global-external-managed listeners: - name: http protocol: HTTP allowedRoutes: kinds: - kind: HTTPRoute namespaces: from: All port: 80
Appliquez le fichier à votre cluster:
kubectl apply -f gateway.yaml
- Déployez une application backend sur votre cluster.
Pour déployer l'application backend exposée par la passerelle
global-ext-lb1
que vous avez créée et déployée:- Créez un fichier nommé
target.yaml
: - Copiez le contenu suivant dans le nouveau fichier:
# target.yaml apiVersion: v1 kind: Namespace metadata: name: http --- apiVersion: v1 kind: ServiceAccount metadata: name: httpbin namespace: http --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: http labels: app: httpbin service: httpbin spec: type: LoadBalancer ports: - name: https port: 80 targetPort: 80 selector: app: httpbin --- apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: http spec: replicas: 1 selector: matchLabels: app: httpbin version: v1 template: metadata: labels: app: httpbin version: v1 spec: serviceAccountName: httpbin containers: - image: docker.io/kennethreitz/httpbin imagePullPolicy: IfNotPresent name: httpbin ports: - containerPort: 80 resources: requests: cpu: 1 memory: 1024Mi limits: cpu: 1 memory: 1024Mi
- Appliquez la configuration à votre cluster comme suit :
kubectl apply -f target.yaml
Pour en savoir plus sur le déploiement d'applications backend sur des clusters GKE, consultez la section Déployer les applications de démonstration.
- Créez un fichier nommé
- Déployez la ressource HTTPRoute dans votre cluster pour mapper le trafic de la passerelle vers votre service backend.
Pour en savoir plus sur la ressource HTTPRoute, consultez Déployer HTTPRoute (pour les passerelles internes) ou Créer un HTTPRoute (pour les passerelles externes).
Pour les besoins de ce guide, nous vous recommandons de déployer une passerelle et un routage HTTP externes en suivant la procédure décrite dans la section Créer un routage HTTP. Lorsque vous créez le HTTPRoute, utilisez la configuration
yaml
suivante:# httproute.yaml kind: HTTPRoute apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: http-bin-route namespace: http spec: parentRefs: - kind: Gateway name: global-ext-lb1 namespace: default hostnames: - apigee-apim-operator-test.apigee.net rules: - matches: - path: value: / backendRefs: - name: httpbin kind: Service port: 80 namespace: http
Appliquez le fichier à votre cluster:
kubectl apply -f httproute.yaml
- Vérifiez la configuration de GKE Gateway pour vous assurer qu'elle fonctionne comme prévu.
- Obtenez les détails de la passerelle à l'aide de la commande suivante:
kubectl get gateway global-ext-lb1
Le résultat doit se présenter comme suit :
NAME CLASS ADDRESS PROGRAMMED AGE global-ext-lb1 gke-l7-global-external-managed 34.54.193.72 True 11d
Vérifiez qu'une adresse IP est attribuée à la passerelle et que la valeur de
PROGRAMMED
estTrue
. - Décrivez la passerelle pour vérifier que la route est associée:
kubectl describe gateway global-ext-lb1
Le résultat doit ressembler à ce qui suit :
... Listeners: Attached Routes: 1 Conditions: Last Transition Time: 2024-10-03T03:10:17Z ...
Vérifiez que la valeur de
Attached Routes
est1
, ce qui indique que l'itinéraire est associé. - Envoyez une requête à la passerelle:
curl http://GATEWAY_IP_ADDRESS/get \ -H "Host: HOST_NAME"
Où :
GATEWAY_IP_ADDRESS
est l'adresse IP de la passerelle. Vous pouvez récupérer l'adresse IP de la passerelle à l'aide de la commande suivante, oùGATEWAY_NAME
est le nom de la passerelle:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
est le nom d'hôte défini dans leHTTPRoute
de la passerelle. Vous pouvez récupérer le HOST_NAME à l'aide de la commande suivante:kubectl get HTTPRoute HTTPROUTE_NAME -n NAMESPACE
For example:
curl http://34.54.193.72/get \ -H "Host: apigee-apim-operator-test.apigee.net"
La réponse devrait se présenter comme suit:
{ "args": {}, "headers": { "Accept": "*/*", "Host": "apigee-apim-operator-test.apigee.net", "User-Agent": "curl/8.7.1", "X-Cloud-Trace-Context": "2bb8a80e29e80662ff9cb89971c447d9/13083106619927322701" }, "origin": "67.164.1.10,34.54.193.72", "url": "http://apigee-apim-operator-test.apigee.net/get" }
- Obtenez les détails de la passerelle à l'aide de la commande suivante:
Étape suivante
Découvrez comment installer l'opérateur APIM.