Créer un load balancer
Sauter à la navigation
Sauter à la recherche
Sommaire
Présentation
Cette page a pour objet de décrire comment créer un load balancer dans GCP.
Création de l'équilibreur de charge pour un service Cloud Run
IP publique
Création IP
gcloud compute addresses create ${PROJECT_NAME}-cloudrun-ip \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --global \ --project=${PROJECT_ID}
Afficher l'adresse IP
gcloud compute addresses describe ${PROJECT_NAME}-cloudrun-ip \ --format="get(address)" \ --global \ --project=${PROJECT_ID}
Variabilisation de l'adresse IP
export CLOUDRUN_IP_ADDRESS=$(gcloud compute addresses describe ${PROJECT_NAME}-cloudrun-ip \ --format="get(address)" \ --global \ --project=${PROJECT_ID})
Certification SSL
Création du certificat
gcloud compute ssl-certificates create ${PROJECT_NAME}-cloudrun-cert \ --description="SSL cert for my CloudRun service" \ --domains=${PROJECT_NAME}.mydomain.com \ --global \ --project=${PROJECT_ID}
DNS
Ajout de l’enregistrement DNS
gcloud dns record-sets create ${PROJECT_NAME}.mydomain.com. \ --type="A" --zone="mydomain-com" \ --rrdatas="${CLOUDRUN_IP_ADDRESS}" \ --ttl="300" \ --project=my-shared-project
Points de terminaison
Création du groupe de points de terminaison de réseau
gcloud beta compute network-endpoint-groups create ${PROJECT_NAME}-cloudrun-neg \ --region=$REGION \ --network-endpoint-type=serverless \ --cloud-run-service=${PROJECT_NAME}-cloudrun \ --project=${PROJECT_ID}
Service de backends
Création du service de backends
gcloud beta compute backend-services create ${PROJECT_NAME}-cloudrun-be \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global \ --project=${PROJECT_ID}
Ajout d’un backend au service de backends
gcloud beta compute backend-services add-backend ${PROJECT_NAME}-cloudrun-be \ --global \ --network-endpoint-group=${PROJECT_NAME}-cloudrun-neg \ --network-endpoint-group-region=$REGION \ --project=${PROJECT_ID}
Mappage d'URLs
Pour la redirection http vers https
Création d’un fichier temporaire :
cat <<EOF>/tmp/url.yaml defaultUrlRedirect: httpsRedirect: true redirectResponseCode: MOVED_PERMANENTLY_DEFAULT stripQuery: false kind: compute#urlMap name: ${PROJECT_NAME}-cloudrun-http-to-https EOF
Validation du fichier :
gcloud compute url-maps validate --source=/tmp/url.yaml --project=${PROJECT_ID}
Import du fichier pour créer le mappage d’URLs :
gcloud compute url-maps import ${PROJECT_NAME}-cloudrun-http-to-https \ --source /tmp/url.yaml \ --global \ --project=${PROJECT_ID}
Pour l'écoute sur https
gcloud beta compute url-maps create ${PROJECT_NAME}-cloudrun-url-maps \ --default-service ${PROJECT_NAME}-cloudrun-be \ --project=${PROJECT_ID}
Création des proxies cibles
Proxy http
gcloud compute target-http-proxies create ${PROJECT_NAME}-cloudrun-http-proxy \ --url-map=${PROJECT_NAME}-cloudrun-http-to-https \ --global \ --project=${PROJECT_ID}
Proxy https
gcloud beta compute target-https-proxies create ${PROJECT_NAME}-cloudrun-https-proxy \ --ssl-certificates=${PROJECT_NAME}-cloudrun-cert \ --url-map=${PROJECT_NAME}-cloudrun-url-maps \ --project=${PROJECT_ID}
Création des équilibreurs de charge
HTTP
gcloud compute forwarding-rules create ${PROJECT_NAME}-cloudrun-http-rule \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --address=${PROJECT_NAME}-cloudrun-ip \ --global \ --target-http-proxy=${PROJECT_NAME}-cloudrun-http-proxy \ --ports=80 \ --project=${PROJECT_ID}
HTTPS
gcloud beta compute forwarding-rules create ${PROJECT_NAME}-cloudrun-https-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=${PROJECT_NAME}-cloudrun-ip \ --target-https-proxy=${PROJECT_NAME}-cloudrun-https-proxy \ --global \ --ports=443 \ --project=${PROJECT_ID}