Juil 19 2021
Comment Accéder à l’Interface Web ProxySQL sur Kubernetes
J’ai présenté dans un article précédent le chart Helm ProxySQL dans lequel j’expliquais comment configurer le pod à partir de requêtes SQL. Le chart inclus un ingress pour atteindre le serveur de stats sur le port 6080. Voici quelques détails pour le rendre fonctionnel.
L’ingress doit être activé dans le fichier Values et le serveur web ProxySQL demande aussi que la variable admin admin-web_enabled soit paramétrée.
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: proxy.domaine.lan
paths:
- /
sqlqueries: |
SET admin-web_enabled='true';
LOAD ADMIN VARIABLES TO RUNTIME;
-- autres requetes
Si vous le laissez tel quel, les connexions HTTP à l’interface web retourneront l’erreur suivante:
Error: received handshake message out of context
L’interface web ProxySQL n’accepte que les connexions HTTPS – même si les exemples fournis dans la documentation utilisent le HTTP – et il n’y a pas d’alternative.
L’ingress doit se connecter au backend avec le protocole HTTPS. Nginx permet de spécifier le protocole utilisé avec l’annotation backend-protocol. Vous avez toujours le choix de laisser l’accès à l’ingress depuis l’extérieur en HTTP, mais ne le faites pas sur une interface publique.
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"