web-dev-qa-db-fra.com

configuration d'entrée pour tableau de bord

J'ai fait le tutoriel nginx ingress controller à partir de github andexposed kubernetes dashboard

kubernetes-dashboard   NodePort    10.233.53.77    <none>        443:31925/TCP   20d

entrée créée 

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.org/ssl-backends: "kubernetes-dashboard"
    kubernetes.io/ingress.allow-http: "false"
  name: dashboard-ingress
  namespace: kube-system
spec:
  tls:
  - hosts:
    - serverdnsname
    secretName: kubernetes-dashboard-certs
  rules:
  - Host: serverdnsname
    http:
      paths:
      - path: /dashboard
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443

ingress-nginx   ingress-nginx          NodePort    10.233.21.200   <none>        80:30827/TCP,443:32536/TCP   5h

https: // serverdnsname: 32536/dashboard mais le tableau de bord génère une erreur 

2018/01/18 14:42:51 http: TLS handshake error from ipWhichEndsWith.77:52686: tls: first record does not look like a TLS handshake

et les journaux du contrôleur d'entrée

2018/01/18 14:42:51 [error] 864#864: *37 upstream sent no valid HTTP/1.0 header while reading response header from upstream, client: 10.233.82.1, server: serverdnsname, request: "GET /dashboard HTTP/2.0", upstream: "http://ipWhichEndsWith.249:8443/dashboard", Host: "serverdnsname:32536"
10.233.82.1 - [10.233.82.1] - - [18/Jan/2018:14:42:51 +0000] "GET /dashboard HTTP/2.0" 009 7 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 OPR/49.0.2725.64" 25 0.001 [kube-system-kubernetes-dashboard-443] ipWhichEndsWith.249:8443 7 0.001 200

Dans mon esprit, il est lié à la redirection nginx vers l'amont: " http: //ipWhichEndsWith.249: 8443/dashboard " . A essayé de mettre à jour la version de l'image du contrôleur vers la version 0.9.0-beta.19 - n'a pas aidé

Merci pour toute aide.

4
Jevgenij Alterman

Comme vous l'avez souligné, il semblerait que nginx envoie votre requête https à ipWhichEndsWith.249:8443, qui est un point de terminaison HTTPS, utilisant http comme protocole. 

Vous devez ajouter l'annotation suivante à votre PodSpec:

nginx.ingress.kubernetes.io/secure-backends: "true"

Cela devrait obliger nginx à transmettre votre demande aux pods avec https.

Source: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/annotations.md#secure-backends

10
whites11

Vous pouvez également utiliser les cartes de barre disponibles ici 

https://github.com/helm/charts/tree/master/stable/kubernetes-dashboard

Ensuite, configurez votre fichier values.yaml afin de remplacer les parties ingress telles que l’activer, et l’ajout d’hôtes est disponible.

0
kiedis