Ce tutoriel est destiné aux architectes cloud et aux administrateurs d'opérations qui souhaitent déployer une application Web sur un cluster Google Kubernetes Engine (GKE) et l'exposer avec un équilibreur de charge HTTPS.
Créer un cluster GKE
Le fichier Terraform suivant crée un cluster GKE :
Le fichier Terraform suivant crée une adresse IP globale et une zone Cloud DNS :
Initialisez Terraform :
terraform init
Affichez les modifications apportées à l'infrastructure :
terraform plan
Lorsque vous y êtes invité, saisissez votre domaine, par exemple
my-domain.net
.Appliquez la configuration Terraform :
terraform apply --auto-approve
Lorsque vous y êtes invité, saisissez votre domaine, par exemple
my-domain.net
.Le résultat ressemble à ce qui suit :
Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: cluster_name = "networking-cluster" region = "us-central1"
Créer un équilibreur de charge d'application externe
Le fichier manifeste suivant décrit un objet ManagedCertificate, FrontendConfig, Deployment, Service et Ingress:
Remplacez
DOMAIN_NAME
par votre nom de domaine, par exemplemy-domain.net
.Ce fichier manifeste possède les propriétés suivantes :
networking.gke.io/managed-certificates
: nom du certificat géré (ManagedCertificate).networking.gke.io/v1beta1.FrontendConfig
: nom de la ressource FrontendConfig.kubernetes.io/ingress.global-static-ip-name
: nom de l'adresse IP.kubernetes.io/ingress.class
: indique au contrôleur GKE Ingress de créer un équilibreur de charge d'application externe.
Appliquez le fichier manifeste à votre cluster :
kubectl apply -f kubernetes-manifests.yaml
Vérifiez que l'objet Ingress a été créé:
kubectl describe ingress frontend
Le résultat ressemble à ce qui suit :
... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ADD 2m loadbalancer-controller default/frontend Normal CREATE 1m loadbalancer-controller ip: 203.0.113.2 ...
Le provisionnement d'Ingress peut prendre plusieurs minutes.
Tester l'application
Vérifiez l'état du certificat SSL :
kubectl get managedcertificates.networking.gke.io networking-managed-cert
Le provisionnement du certificat SSL peut prendre jusqu'à 30 minutes. Le résultat suivant indique que le certificat SSL est prêt :
NAME AGE STATUS networking-managed-cert 28m Active
Exécutez une commande
curl
:curl -Lv https://DOMAIN_NAME
Le résultat ressemble à ce qui suit :
* Trying 34.160.115.33:443... * Connected to DOMAIN_NAME (34.160.115.33) port 443 (#0) ... * TLSv1.3 (IN), TLS handshake, Certificate (11): ... * Server certificate: * subject: CN=DOMAIN_NAME ... > Host: DOMAIN_NAME