Accesso a un cluster mediante il dashboard Kubernetes

Scopri come avviare il dashboard Kubernetes per visualizzare i cluster creati utilizzando Kubernetes Engine (OKE).

Nota

Non è possibile utilizzare il dashboard Kubernetes con pool di nodi virtuali.

Il dashboard Kubernetes è un'interfaccia di gestione basata sul Web che consente di:

  • distribuire e modificare le applicazioni containerizzate
  • valutare lo stato delle applicazioni containerizzate
  • risolvere i problemi delle applicazioni in container

Il dashboard Kubernetes è particolarmente utile per i nuovi utenti Kubernetes. Per ulteriori informazioni sul dashboard Kubernetes (a volte denominato interfaccia utente Web o interfaccia utente del dashboard), vedere l'argomento Interfaccia utente Web (Dashboard) nella documentazione di Kubernetes.

Per impostazione predefinita, il dashboard Kubernetes non viene distribuito nei cluster. Tuttavia, puoi distribuire il dashboard Kubernetes nei cluster creati con Kubernetes Engine nei modi riportati di seguito.

  • Per distribuire manualmente il dashboard Kubernetes in un cluster esistente, consultare la documentazione di Kubernetes. Quando si seguono le istruzioni per distribuire manualmente il dashboard Kubernetes, viene distribuito nello spazio di nomi kubernetes-dashboard (non nello spazio di nomi kube-system). L'URL per visualizzare un dashboard Kubernetes distribuito manualmente è il seguente:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
  • Per fare in modo che Kubernetes Engine distribuisca automaticamente il dashboard Kubernetes durante la creazione avanzata del cluster, puoi:
    • Creare il cluster avanzato utilizzando il workflow 'Creazione personalizzata' nella console e configurare il componente aggiuntivo del cluster del dashboard Kubernetes.
    • Creare il cluster utilizzando l'API e impostare l'attributo isKubernetesDashboardEnabled su true.

    Quando Kubernetes Engine distribuisce automaticamente il dashboard Kubernetes, viene distribuito nello spazio di nomi kube-system. L'URL per visualizzare un dashboard Kubernetes distribuito automaticamente è il seguente:

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

Tenere presente quanto riportato di seguito.

  • Non è possibile eseguire il dashboard Kubernetes in Cloud Shell.
  • Si sconsiglia di installare il dashboard Kubernetes nei cluster di produzione a causa della mancanza di supporto di autenticazione estensibile. Se installi il dashboard Kubernetes, ti consigliamo di limitare l'accesso all'interno del cluster invece di esporlo esternamente tramite un load balancer o un controller in entrata. Il dashboard Kubernetes è un vettore di attacco comune utilizzato per accedere ai cluster Kubernetes.
  • I comandi da utilizzare per eliminare il dashboard Kubernetes da un cluster dipenderanno dalla versione di Kubernetes in esecuzione nel cluster. Vedere Note sull'eliminazione del dashboard Kubernetes.
  • Un comando CLI di Oracle Cloud Infrastructure nel file kubeconfig genera token di autenticazione di breve durata, con ambito cluster e specifici per i singoli utenti. Di conseguenza, non è possibile condividere i file kubeconfig tra gli utenti per accedere ai cluster Kubernetes. I token di autenticazione generati sono inoltre inadatti se si desidera che altri processi e strumenti accedano al cluster, ad esempio strumenti di integrazione continua e distribuzione continua (CI/CD). In questo caso, si consiglia di creare un account di servizio Kubernetes e di aggiungere il token di autenticazione associato al file kubeconfig. Per maggiori informazioni, vedere Adding a Service Account Authentication Token to a Kubeconfig File.
  • È possibile utilizzare il dashboard Kubernetes con pool di nodi gestiti, ma non con pool di nodi virtuali.

Accesso a un cluster mediante il dashboard Kubernetes

Per accedere a un cluster utilizzando il dashboard Kubernetes, effettuare le operazioni riportate di seguito.

  1. Se non è già stato fatto, attenersi alla procedura per impostare il file di configurazione kubeconfig del cluster e (se necessario) impostare la variabile di ambiente KUBECONFIG in modo che punti al file. Si noti che è necessario impostare il proprio file kubeconfig. Non è possibile accedere a un cluster utilizzando un file kubeconfig impostato da un altro utente. Vedere Impostazione dell'accesso al cluster.
  2. In un editor di testo, creare un file (ad esempio, denominato oke-admin-service-account.yaml) con il seguente contenuto:

    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

    Il file definisce un account di servizio amministratore e un clusterrolebinding, entrambi denominati oke-admin.

  3. Creare l'account di servizio e il clusterrolebinding nel cluster immettendo:

    kubectl apply -f <filename>

    dove <filename> è il nome del file creato in precedenza. Ad esempio:

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

    L'output del comando precedente conferma la creazione dell'account di servizio e del clusterrolebinding:

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

    È ora possibile utilizzare l'account di servizio oke-admin per visualizzare e controllare il cluster e per connettersi al dashboard Kubernetes.

  4. Ottenere un token di autenticazione per l'account di servizio oke-admin come indicato di seguito.
    1. In un editor di testo, creare un file (ad esempio, oke-admin-sa-token.yaml) per creare un segreto (ad esempio, denominato oke-admin-sa-token) con il contenuto seguente.
      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. Creare il token dell'account di servizio immettendo:

      kubectl apply -f <filename>

      dove <filename> è il nome del file creato in precedenza. Ad esempio:

      kubectl apply -f oke-admin-sa-token.yaml
    3. Visualizzare i dettagli del segreto immettendo:

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

      L'output del comando precedente include un token di autenticazione (stringa alfanumerica lunga) come valore dell'elemento token:, come illustrato di seguito:

      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

      Nell'esempio sopra, eyJh______px1Q (abbreviato per leggibilità) è il token di autenticazione.

    4. Copiare il valore dell'elemento token: dall'output. Questo token verrà utilizzato per connettersi al dashboard.

  5. In una finestra del terminale, immettere kubectl proxy per rendere disponibile il dashboard Kubernetes.
  6. Aprire un browser e andare all'URL seguente per visualizzare il dashboard Kubernetes distribuito al momento della creazione del cluster:
    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

    Tenere presente che se si seguono le istruzioni riportate nella documentazione di Kubernetes per distribuire manualmente il dashboard Kubernetes in un cluster esistente, tale dashboard viene distribuito nello spazio di nomi kubernetes-dashboard anziché nello spazio di nomi kube-system. Di conseguenza, l'URL per visualizzare il dashboard Kubernetes distribuito manualmente è il seguente:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
  7. Nel dashboard Kubernetes, selezionare Token e incollare il valore dell'elemento token: copiato in precedenza nel campo Token.

  8. Nel dashboard Kubernetes, selezionare Connetti, quindi Panoramica per visualizzare le applicazioni distribuite sul cluster.

Note sull'eliminazione del dashboard Kubernetes

Se si desidera eliminare manualmente il dashboard Kubernetes da un cluster, eseguire i comandi kubectl riportati di seguito.

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