web-dev-qa-db-fra.com

Tableau de bord K8s cassé microk8s et tableau de bord Kubeflow

J'utilise des microk8 dans une VM Ubuntu 18.04 LTS, 3 cœurs, 60 Go de stockage, 12 Go de mémoire. J'ai suivi les instructions du site Web microk8s ici pour l'installer.

$ snap install microk8s --classic --channel=1.18/stable
$ Sudo microk8s start
$ Sudo microk8s enable dns storage dashboard
$ Sudo microk8s enable kubeflow

Cela a pris du temps mais tout a commencé. J'ai 110 pods en cours d'exécution. Lorsque Kubeflow a terminé l'installation, j'ai

Operator pods ready.
Waiting for service pods to become ready.

Congratulations, Kubeflow is now available.
The dashboard is available at http://10.64.140.43.xip.io/

    Username: admin
    Password: VIVGI9KB7GEX6JNAQJXZTXD97S42XD

Ce qui n'a pas fonctionné. Lorsque je mets cette URL dans mon navigateur, j'obtiens un écran blanc. J'ai ensuite essayé d'accéder au tableau de bord de kubernetes et j'ai pu me connecter avec mon jeton, mais cela indique qu'il ne trouve aucune ressource. Il ne montre rien dans les espaces de noms, les nœuds ou quoi que ce soit.

enter image description here

L'espace de noms est toujours par défaut car je ne peux pas le faire afficher kubeflow. La documentation indique que kubeflow ne fonctionne pas pour kubernetes 1.18 mais si vous installez une ancienne version de microk8s, cela ne vous donne pas la possibilité d'activer kubeflow. Cela n'explique pas non plus pourquoi le tableau de bord ne fonctionne pas. Je ne sais pas vraiment quoi vérifier pour résoudre ce problème. J'ai essayé d'utiliser l'adresse IP interne pour l'ambassadeur kubeflow (équilibreur de charge kubeflow) mais cela ne semblait pas non plus fonctionner.

voici plus de détails sur le service ambassador

Sudo microk8s kubectl -n kubeflow describe service/ambassador
Name:                     ambassador
Namespace:                kubeflow
Labels:                   juju-app=ambassador
Annotations:              juju.io/controller: 7fe60455-b041-4b5e-8c85-0c8155b0f52d
                          juju.io/model: f635bf6f-c598-4d5c-841b-e798f520a898
                          metallb.universe.tf/address-pool: default
Selector:                 juju-app=ambassador
Type:                     LoadBalancer
IP:                       10.152.183.67
LoadBalancer Ingress:     10.64.140.43
Port:                     ambassador  80/TCP
TargetPort:               80/TCP
NodePort:                 ambassador  30085/TCP
Endpoints:                10.1.40.17:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age                 From                Message
  ----    ------        ----                ----                -------
  Normal  IPAllocated   58m                 metallb-controller  Assigned IP "10.64.140.43"
  Normal  nodeAssigned  2m5s (x5 over 56m)  metallb-speaker     announcing from node "tatooine"
5
lwileczek

J'ai donc eu le même problème et j'ai passé du temps dessus mais j'ai trouvé comment le faire grâce au code là-bas https://github.com/ubuntu/microk8s/blob/master/microk8s-resources/actions/enable .kubeflow.sh

Après le enable kubeflow, le tableau de bord kubeflow est disponible sur http://10.64.140.43.xip.io/ , mais il s'agit d'une adresse IP privée, inaccessible en dehors de votre réseau local de votre VM. Vous ne pouvez pas résoudre cela avec un proxy (j'ai essayé) car certaines URL sont absolues (avec le nom de domaine).

Disons que votre VM est accessible de l'extérieur à l'adresse IP publique A.B.C.D. Vous devez changer le nom d'hôte kubeflow en A.B.C.D.xip.io

Donc, fondamentalement, vous devez changer le nom d'hôte dans plusieurs applications juju:

Sudo microk8s juju config dex-auth public-url=http://A.B.C.D.xip.io
Sudo microk8s juju config oidc-gatekeeper public-url=http://A.B.C.D.xip.io
Sudo microk8s juju config ambassador juju-external-hostname=A.B.C.D.xip.io

J'espère que ça aide,

0
Pixou