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}