Accès à un cluster à l'aide du tableau de bord Kubernetes

Découvrez comment démarrer le tableau de bord Kubernetes pour visualiser les clusters créés à l'aide de Kubernetes Engine (OKE).

Remarque

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

Le tableau de bord Kubernetes est une interface de gestion Web qui vous permet :

  • de déployer et de modifier des applications en conteneur,
  • d'évaluer le statut des applications en conteneur,
  • de dépanner les applications en conteneur.

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

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

  • Pour déployer manuellement le tableau de bord Kubernetes sur un cluster existant, reportez-vous à la documentation Kubernetes. Lorsque vous suivez les instructions de déploiement manuel du tableau de bord Kubernetes, il est déployé dans l'espace de noms kubernetes-dashboard (et non dans l'espace de noms kube-system). L'URL permettant d'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 de cluster, vous pouvez :
    • Créez le cluster amélioré à l'aide du workflow Création personnalisée dans la console et configurez l'extension de cluster de tableau de bord Kubernetes.
    • Créez le cluster à l'aide de l'API et définissez l'attribut isKubernetesDashboardEnabled sur True.

    Lorsque Kubernetes Engine déploie automatiquement le tableau de bord Kubernetes, ce dernier est déployé dans l'espace de noms kube-system. L'URL permettant d'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

Tenez compte des éléments suivants :

  • Vous ne pouvez pas exécuter le tableau de bord Kubernetes dans Cloud Shell.
  • Nous ne recommandons pas l'installation du tableau de bord Kubernetes sur les clusters 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 de restreindre l'accès au sein du cluster, au lieu de l'exposer en externe via un équilibreur de charge ou un contrôleur d'entrée. Le tableau de bord Kubernetes est un vecteur d'attaque courant utilisé pour accéder aux clusters Kubernetes.
  • Les commandes à utiliser pour supprimer le tableau de bord Kubernetes d'un cluster dépendent de la version de Kubernetes exécutée sur le cluster. Reportez-vous à Remarques sur la suppression du tableau de bord Kubernetes.
  • Une commande de l'interface de ligne de commande Oracle Cloud Infrastructure dans le fichier kubeconfig génère des jetons d'authentification de courte durée, de niveau cluster et propres à chaque utilisateur. Par conséquent, les utilisateurs ne peuvent pas partager des fichiers Kubeconfig pour accéder aux clusters Kubernetes. Les jetons d'authentification générés ne permettent pas non plus à d'autres processus et outils d'accéder au cluster, tels que les outils d'intégration continue et de déploiement continu. Dans ce cas, envisagez de créer un compte de service Kubernetes et d'ajouter le jeton d'authentification qui lui est associé au fichier Kubeconfig. Pour plus d'informations, reportez-vous à Ajout d'un jeton d'authentification de compte de service à un fichier Kubeconfig.
  • Vous pouvez utiliser le tableau de bord Kubernetes avec des pools de noeuds gérés, mais pas avec des pools de noeuds virtuels.

Accès à un cluster à l'aide du tableau de bord Kubernetes

Pour accéder à un cluster à l'aide du tableau de bord Kubernetes, procédez comme suit :

  1. Si vous ne l'avez pas encore fait, suivez les étapes permettant de configurer le fichier de configuration Kubeconfig du cluster et (si nécessaire) de définir la variable d'environnement KUBECONFIG de sorte qu'elle pointe vers le fichier. Vous devez configurer votre propre fichier Kubeconfig. Vous ne pouvez pas accéder à un cluster à l'aide d'un fichier Kubeconfig configuré par un autre utilisateur. Reportez-vous à Configuration de l'accès à un cluster.
  2. Dans un éditeur de texte, créez un fichier (par exemple, appelé oke-admin-service-account.yaml) dont le contenu est le 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

    Le fichier définit un compte de service d'administrateur et un objet clusterrolebinding, tous deux appelés oke-admin.

  3. Créez le compte de service et l'objet clusterrolebinding dans le cluster en saisissant ce qui suit :

    kubectl apply -f <filename>

    <filename> est le nom du fichier 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 l'objet clusterrolebinding :

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

    Vous pouvez à présent utiliser le compte de service oke-admin pour afficher et contrôler le cluster, 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, oke-admin-sa-token.yaml) pour créer une clé secrète (par exemple, 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 saisissant ce qui suit :

      kubectl apply -f <filename>

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

      kubectl apply -f oke-admin-sa-token.yaml
    3. Affichez les détails de la clé secrète en saisissant ce qui suit :

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

      La sortie de la commande ci-dessus inclut un jeton d'authentification (une longue chaîne alphanumérique) en tant que 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, saisissez 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 déployé lors de la création du cluster :
    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

    Si vous avez suivi les instructions de la documentation Kubernetes pour déployer manuellement le tableau de bord Kubernetes sur un cluster existant, celui-ci est déployé dans l'espace de noms kubernetes-dashboard plutôt que dans l'espace de noms kube-system. Par conséquent, l'URL permettant d'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é précédemment dans le champ Jeton.

  8. Dans le tableau de bord Kubernetes, sélectionnez Connexion, puis Aperçu pour visualiser les applications déployées sur le cluster.

Remarques sur la suppression du tableau de bord Kubernetes

Si vous souhaitez supprimer manuellement le tableau de bord Kubernetes d'un cluster, 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