5 votes

Le problème du CDN, du stockage et du moteur de conteneurs du cloud de Google avec le service de backend

J'ai un cas d'utilisation spécifique que je n'arrive pas à résoudre.

Une configuration typique de gcloud :

  • Un groupe K8S

  • Un seau de stockage gcloud

  • Un répartiteur de charge gcloud

J'ai réussi à obtenir mon domaine https://cdn.foobar.com/uploads/ pour pointer vers un backend de stockage google sans aucun problème : Je peux accéder aux fichiers. C'est le service de backend qui échoue.

Je souhaite que le CDN pour agir comme un cache, lorsqu'une requête HTTP l'atteint, comme par exemple https://cdn.foobar.com/assets/x.jpg s'il ne dispose pas d'une copie du bien, il doit interroger un autre domaine https://foobar.com/assets/x.jpg .

J'ai compris qu'il s'agissait de load balancers backend-service étaient pour. (N'est-ce pas ?)

En backend-service pointe vers le groupe d'instances du cluster k8s et nécessite un port. I guessed que j'avais besoin d'autoriser le pare-feu à exposer les Nodeport de mon service d'application web pour que le loadbalancer puisse l'interroger.

CDN en nuage

enter image description here

enter image description here

Équilibrage de la charge

Échec des contrôles de santé.

enter image description here

Le service backend pointe vers le groupe d'instances du cluster k8s et requiert certains ports (par défaut 80 ?). 80 a échoué. I guessed que j'avais besoin d'autoriser le pare-feu à exposer le 32231 Nodeport de mon service d'application web pour que le loadbalancer puisse l'interroger. Cela a encore échoué avec un 502.

?> kubectl describe svc Name: backoffice-service Namespace: default Labels: app=backoffice Selector: app=backoffice Type: NodePort IP: 10.7.xxx.xxx Port: http 80/TCP NodePort: http 32231/TCP Endpoints: 10.4.x.x:8500,10.4.x.x:8500 Session Affinity: None No events.

enter image description here

Je n'avais plus d'idées à ce stade. Tout conseil dans la bonne direction serait très apprécié.

2voto

Marilu Points 349

Lorsque vous déployez votre service en tant que type ' NodePort Vous exposez le service sur l'IP de chaque nœud, mais le service n'est pas accessible à l'extérieur, vous devez donc exposer votre service en tant que "LoadBalancer".

Puisque vous cherchez à utiliser un équilibreur de charge HTTP(s), je vous recommande d'utiliser un équilibreur de charge Kubernetes. Ressource d'entrée . Cette ressource sera chargée de configurer l'équilibreur de charge HTTP(s) et les ports requis que votre service utilise, ainsi que les contrôles de santé sur le port spécifié.

Puisque vous sécurisez votre application, vous devez configurer un fichier secret objet pour sécuriser l'entrée .

Le présent exemple vous aidera à démarrer une entrée avec terminaison TLS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X