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).
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 nomskube-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 :
-
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.
-
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.
-
Créez le compte de service et l'objet clusterrolebinding dans le cluster en saisissant ce qui suit :
kubectl apply -f <filename>
où
<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.
- Obtenez un jeton d'authentification pour le compte de service oke-admin comme suit :
- 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
-
Créez le jeton de compte de service en saisissant ce qui suit :
kubectl apply -f <filename>
où
<filename>
est le nom du fichier créé précédemment. Par exemple :kubectl apply -f oke-admin-sa-token.yaml
-
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. -
Copiez la valeur de l'élément
token:
à partir de la sortie. Vous utiliserez ce jeton pour vous connecter au tableau de bord.
- 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.
- Dans une fenêtre de terminal, saisissez
kubectl proxy
pour rendre le tableau de bord Kubernetes disponible. - 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 nomskube-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.
-
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. - 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