AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Comment utiliser les certificats de protocole TLS pour activer les connexions HTTPS pour mes applications Amazon EKS ?
Je souhaite utiliser des certificats de protocole TLS pour activer les connexions HTTPS pour mes applications Amazon Elastic Kubernetes Service (Amazon EKS).
Brève description
Pour activer les connexions HTTPS pour vos applications Amazon EKS, suivez ces étapes :
- Obtenez un certificat TLS valide pour votre domaine personnalisé.
- Utilisez le type de service d'équilibrage de charge pour exposer votre service Kubernetes, ou utilisez AWS Load Balancer Controller pour exposer votre objet d'entrée Kubernetes.
- Associez votre domaine personnalisé au DNS de l'équilibreur de charge.
Résolution
Obtention d’un certificat TLS valide pour votre domaine personnalisé
Pour obtenir un certificat TLS valide pour votre domaine personnalisé, procédez comme suit :
-
Demandez un certificat AWS Certificate Manager (ACM) public pour votre domaine personnalisé, ou chargez votre propre certificat TLS sur ACM.
-
Identifiez l’ARN du certificat que vous souhaitez utiliser avec l'écouteur HTTPS de l'équilibreur de charge.
-
Pour créer un exemple de déploiement NGINX, exécutez la commande suivante :
$ kubectl create deploy web --image=nginx --port 80 --replicas=3 -
Pour vérifier que les pods Kubernetes sont bien déployés dans votre cluster Amazon EKS, exécutez la commande suivante :
$ kubectl get pods -l app=web**Remarque :**Les pods sont étiquetés app=web. Utilisez cette étiquette comme sélecteur pour l'objet de service afin d'identifier un ensemble de pods.
Utilisation du type de service d'équilibrage de charge pour exposer votre service Kubernetes
Remarque : pour utiliser l'objet d'entrée afin d'exposer votre application, suivez les instructions de la sectionUtilisation de l'objet d'entrée pour exposer votre service Kubernetes.
Pour utiliser le type de service d'équilibrage de charge afin d'exposer votre service Kubernetes, procédez comme suit :
-
Pour créer un fichier manifeste service.yaml, utilisez le type de service LoadBalancer :
cat <<EOF > loadbalancer.yaml apiVersion: v1 kind: Service metadata: name: lb-service annotations: # Note that the backend talks over HTTP. service.beta.kubernetes.io/aws-load-balancer-type: external # TODO: Fill in with the ARN of your certificate. service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:{region}:{user id}:certificate/{id} # Run TLS only on the port named "https" below. service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https" # By default In-tree controller will create a Classic LoadBalancer if you require a NLB uncomment below annotation. # service.beta.kubernetes.io/aws-load-balancer-type: "nlb" spec: selector: app: web ports: - name: http port: 80 targetPort: 80 - name: https port: 443 targetPort: 80 type: LoadBalancer EOF -
Modifiez l'annotationservice.beta.kubernetes.io/aws-load-balancer-tls-cert pour inclure l'ARN de l'ACM.
-
Pour appliquer le fichier loadbalancer.yaml, exécutez la commande suivante :
$ kubectl create -f loadbalancer.yaml -
Suivez les instructions de la section Association de votre domaine personnalisé au DNS de l'équilibreur de charge.
Utilisation de l'objet d'entrée pour exposer votre service Kubernetes
Remarque : la résolution suivante suppose que vous avez installé AWS Load Balancer Controller dans votre cluster Amazon EKS. Pour en savoir plus, consultez la page aws-load-balancer-controller sur le site Web de GitHub.
Pour utiliser l'objet d'entrée afin d'exposer votre service Kubernetes, procédez comme suit :
- Créez un service Kubernetes de type NodePort en vous basant sur l'exemple suivant :
Remarque : le manifeste d'entrée précédent écoute HTTP et HTTPS, met fin au protocole TLS sur l’Application Load Balancer, puis redirige HTTP vers le protocole HTTPS.cat <<EOF > ingressservice.yaml apiVersion: v1 kind: Service metadata: name: web-nginx spec: ports: - port: 80 targetPort: 80 protocol: TCP type: NodePort selector: app: web --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: "web-nginx-ingress" annotations: # Below annotation is to specify if the loadbalancer is "internal" or "internet-facing" alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Fill in with the ARN of your certificate. alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx # TODO: Fill in the listening ports. alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' # Set HTTP to HTTPS redirects. Every HTTP listener configured is redirected to below mentioned port over HTTPS. alb.ingress.kubernetes.io/ssl-redirect: '443' labels: app: web spec: ingressClassName: alb rules: - http: paths: - path: / pathType: Prefix backend: service: name: "web-nginx" port: number: 80 EOF - Pour appliquer le fichier ingressservice.yaml, exécutez la commande suivante :
$ kubectl create -f ingressservice.yaml
Association de votre domaine personnalisé au DNS de l'équilibreur de charge
Pour associer votre domaine personnalisé au DNS de l'équilibreur de charge, procédez comme suit :
-
Pour renvoyer l'URL de DNS du service de type LoadBalancer, exécutez la commande suivante :
$ kubectl get service -
Pour renvoyer l'URL de DNS du service de type Ingress, exécutez la commande suivante :
$ kubectl get ingress/web-nginx-ingress -
Associez votre nom de domaine personnalisé au nom de votre équilibreur de charge.
-
Dans un navigateur Web, testez votre domaine personnalisé à l'aide du protocole HTTPS suivant :
https://yourdomain.com
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
demandé il y a un an
demandé il y a 6 mois
demandé il y a 4 ans
demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a 2 ans
AWS OFFICIELA mis à jour il y a un an