Accès à une grappe à l'aide du tableau de bord Kubernetes

Découvrez comment démarrer le tableau de bord Kubernetes pour voir les grappes que vous avez créées à l'aide de Kubernetes Engine (OKE).

Note

Vous ne pouvez pas utiliser le tableau de bord Kubernetes avec des groupes de noeuds virtuels.

Le tableau de bord Kubernetes est une interface de gestion Web qui permet d'effectuer les opérations suivantes :

  • déployer et modifier des applications en conteneurs
  • évaluer l'état des applications en conteneurs
  • dépanner les applications en conteneurs

Le tableau de bord Kubernetes est particulièrement utile pour les nouveaux utilisateurs de Kubernetes. Pour plus d'informations sur le tableau de bord Kubernetes (parfois appelé interface Web ou interface de tableau de bord), voir la rubrique Interface Web (tableau de bord) dans la documentation sur Kubernetes.

Le tableau de bord Kubernetes n'est pas déployé dans les grappes par défaut. Toutefois, vous pouvez déployer le tableau de bord Kubernetes dans les grappes que vous créez avec Kubernetes Engine des manières suivantes :

  • Pour déployer manuellement le tableau de bord Kubernetes sur une grappe existante, voir la documentation sur Kubernetes. Lorsque vous suivez les instructions pour déployer manuellement le tableau de bord Kubernetes, celui-ci est déployé dans l'espace de noms kubernetes-dashboard (et non kube-system). L'URL pour afficher un tableau de bord Kubernetes déployé manuellement est la suivante :

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
  • Pour que Kubernetes Engine déploie automatiquement le tableau de bord Kubernetes lors de la création améliorée des grappes, vous pouvez :
    • Créez la grappe améliorée à l'aide du flux de création personnalisée dans la console et configurez le module complémentaire de grappe du tableau de bord Kubernetes.
    • Créez la grappe à l'aide de l'API et réglez l'attribut isKubernetesDashboardEnabled à Vrai.

    Lorsque Kubernetes Engine déploie automatiquement le tableau de bord Kubernetes, il est déployé dans l'espace de noms kube-system. L'URL pour afficher un tableau de bord Kubernetes déployé automatiquement est la suivante :

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

Notez ce qui suit :

  • Vous ne pouvez pas exécuter le tableau de bord Kubernetes dans Cloud Shell.
  • Il n'est pas recommandé d'installer le tableau de bord Kubernetes sur les grappes de production en raison du manque de prise en charge de l'authentification extensible. Si vous installez le tableau de bord Kubernetes, nous vous recommandons d'en restreindre l'accès à la grappe plutôt que de l'exposer à l'externe au moyen d'un équilibreur de charge ou d'un contrôleur de trafic entrant. Le tableau de bord Kubernetes est un vecteur d'attaque commun utilisé pour accéder aux grappes Kubernetes.
  • Les commandes utilisées pour supprimer le tableau de bord Kubernetes d'une grappe dépendent de la version de Kubernetes exécutée dans la grappe : Voir Notes sur la suppression du tableau de bord Kubernetes.
  • Une commande CLI Oracle Cloud Infrastructure dans le fichier kubeconfig génère des jetons d'authentification à courte durée de vie, propres à une grappe et destinés à des utilisateurs individuels. Ainsi, vous ne pouvez pas partager les fichiers kubeconfig entre plusieurs utilisateurs pour accéder aux grappes Kubernetes. Les jetons d'authentification générés sont également inadéquats si vous voulez que d'autres processus et outils accèdent à la grappe, tels que les outils d'intégration et de livraison en continu (CI/CD). Dans ce cas, envisagez la création d'un compte de service Kubernetes et l'ajout du jeton d'authentification associé au fichier kubeconfig. Pour plus d'informations, voir Ajout d'un jeton d'authentification de compte de service dans un fichier Kubeconfig.
  • Vous pouvez utiliser le tableau de bord Kubernetes avec des groupes de noeuds gérés, mais pas avec des groupes de noeuds virtuels.

Accès à une grappe à l'aide du tableau de bord Kubernetes

Pour accéder à une grappe à l'aide du tableau de bord Kubernetes :

  1. Si vous ne l'avez pas encore fait, suivez les étapes pour configurer le fichier de configuration kubeconfig de la grappe et (s'il y a lieu) définissez la variable d'environnement KUBECONFIG pour qu'elle pointe vers le fichier. Notez que vous devez configurer votre propre fichier kubeconfig. Vous ne pouvez pas accéder à une grappe à l'aide d'un fichier kubeconfig configuré par un autre utilisateur. Voir Configuration de l'accès aux grappes.
  2. Dans un éditeur de texte, créez un fichier (nommé par exemple oke-admin-service-account.yaml) avec le contenu suivant :

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: oke-admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: oke-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: oke-admin
      namespace: kube-system

    Ce fichier définit un compte de service d'administrateur et une liaison de rôle de grappe (ClusterRoleBinding), nommés tous les deux oke-admin.

  3. Créez le compte de service et la liaison de rôle de grappe dans la grappe en entrant :

    kubectl apply -f <filename>

    <filename> est le nom du fichier que vous avez créé précédemment. Par exemple :

    kubectl apply -f oke-admin-service-account.yaml

    La sortie de la commande ci-dessus confirme la création du compte de service et de la liaison de rôle de grappe :

    
    serviceaccount "oke-admin" created
    clusterrolebinding.rbac.authorization.k8s.io "oke-admin" created

    Vous pouvez maintenant utiliser le compte de service oke-admin pour voir et contrôler la grappe ainsi que pour vous connecter au tableau de bord Kubernetes.

  4. Obtenez un jeton d'authentification pour le compte de service oke-admin comme suit :
    1. Dans un éditeur de texte, créez un fichier (par exemple, appelé oke-admin-sa-token.yaml) pour créer une clé secrète (par exemple, nommée oke-admin-sa-token) avec le contenu suivant.
      apiVersion: v1
      kind: Secret
      metadata:
        name: oke-admin-sa-token
        namespace: kube-system
        annotations:
         kubernetes.io/service-account.name: oke-admin
      type: kubernetes.io/service-account-token
    2. Créez le jeton de compte de service en entrant :

      kubectl apply -f <filename>

      <filename> est le nom du fichier que vous avez créé précédemment. Par exemple :

      kubectl apply -f oke-admin-sa-token.yaml
    3. Voir les détails de la clé secrète en entrant :

      kubectl describe secrets oke-admin-sa-token -n kube-system

      La sortie de la commande ci-dessus comprend un jeton d'authentification (une chaîne alphanumérique longue) comme valeur de l'élément token:, comme indiqué ci-dessous :

      Name:         oke-admin-sa-token
      Namespace:    kube-system
      Labels:       <none>
      Annotations:  kubernetes.io/service-account.name: oke-admin
      kubernetes.io/service-account.uid: 3a7fcd8e-e123-11e9-81ca-0a580aed8570
      Type:  kubernetes.io/service-account-token
      Data
      ====
      ca.crt:     1289 bytes
      namespace:  11 bytes
      token:      eyJh______px1Q

      Dans l'exemple ci-dessus, eyJh______px1Q (abrégé pour plus de lisibilité) est le jeton d'authentification.

    4. Copiez la valeur de l'élément token: à partir de la sortie. Vous utiliserez ce jeton pour vous connecter au tableau de bord.

  5. Dans une fenêtre de terminal, entrez kubectl proxy pour rendre le tableau de bord Kubernetes disponible.
  6. Ouvrez un navigateur et accédez à l'URL suivante pour afficher le tableau de bord Kubernetes qui a été déployé lorsque la grappe a été créée :
    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

    Notez que si vous suivez les instructions de la documentation sur Kubernetes pour déployer manuellement le tableau de bord Kubernetes dans une grappe existante, il est déployé dans l'espace de noms kubernetes-dashboard, et non kube-system. Par conséquent, l'URL pour afficher le tableau de bord Kubernetes déployé manuellement est la suivante :

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
  7. Dans le tableau de bord Kubernetes, sélectionnez Jeton et collez la valeur de l'élément token: que vous avez copiée précédemment dans le champ Jeton.

  8. Dans le tableau de bord Kubernetes, sélectionnez Connexion, puis Aperçu pour voir les applications déployées dans la grappe.

Notes sur la suppression du tableau de bord Kubernetes

Si vous voulez supprimer manuellement le tableau de bord Kubernetes d'une grappe, exécutez les commandes kubectl suivantes :

kubectl delete deployment kubernetes-dashboard -n kube-system
kubectl delete sa -n kube-system kubernetes-dashboard
kubectl delete svc -n kube-system kubernetes-dashboard
kubectl delete secret -n kube-system kubernetes-dashboard-certs
kubectl delete secret -n kube-system kubernetes-dashboard-csrf
kubectl delete secret -n kube-system kubernetes-dashboard-key-holder
kubectl delete cm -n kube-system kubernetes-dashboard-settings
kubectl delete role -n kube-system kubernetes-dashboard
kubectl delete rolebinding -n kube-system kubernetes-dashboard
kubectl delete clusterrole -n kube-system kubernetes-dashboard
kubectl delete clusterrolebinding -n kube-system kubernetes-dashboard
kubectl delete deploy -n kube-system kubernetes-dashboard