Welcome to the Linux Foundation Forum!

lab 13.3 - charts on dashboard

Options

Hello,

in guide for lab 13.3 (dashboard configuration) - on figure 13.3 there are beautiful charts for CPU and memory usage. On my dashboard I've everything except those charts. What I'm missing in configuration?

Regards,
Mariusz

Comments

  • chrispokorni
    chrispokorni Posts: 2,208
    Options

    Hi @mariuszr,

    Assuming that your metrics-server is operational, from any of the following Dashboard view you should see the CPU Usage and Memory Usage charts: Overview, Deployments, Pods, etc... These views can be selected from the left navigation panel.

    Regards,
    -Chris

  • mariuszr
    mariuszr Posts: 4
    Options

    Hi Chris,

    Yes, metrics-server is working fine.

    here how it looks in my case

    Regards,
    Mariusz

  • chrispokorni
    chrispokorni Posts: 2,208
    Options

    Hi @mariuszr,

    Did you happen to install the dashboard from a helm chart? Can you confirm that the dashaccess clusterrolebinding binds the correct serviceaccount with the correct clusterrole?

    Also, is the metrics-server deployment configured with the additional --kubelet-... arguments as presented in step 5?

    Regards,
    -Chris

  • mariuszr
    mariuszr Posts: 4
    Options

    Hi Chris,

    yes, dashboard installed from helm chart (with service modified to NodePort)
    yes, roles are correct:
    Name: dashaccess
    Labels:
    Annotations:
    Role:
    Kind: ClusterRole
    Name: cluster-admin
    Subjects:
    Kind Name Namespace
    ---- ---- ---------
    ServiceAccount dashboard-kubernetes-dashboard default___

    and, one more yes, metrics-server deployment had both --kubelet-... arguments - bellow piece of describe command
    "Containers:
    metrics-server:
    Image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7
    Port: 4443/TCP
    Host Port: 0/TCP
    Args:
    --cert-dir=/tmp
    --secure-port=4443
    --kubelet-insecure-tls
    --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname"

    Regards,
    Mariusz

  • chrispokorni
    chrispokorni Posts: 2,208
    Options

    Hi @mariuszr,

    I have seen similar issues in the past with misconfigured Dashboard charts. In those situations the recommendation was to install the Dashboard following the documentation instead. As a result, steps 1 through 4 of the "Configure the Dashboard" lab should be replaced by:

    The installation command from the documentation:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

    Edit the service and convert it into a NodePort type service:
    kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard

    List the service to view the value of the node port (3xxxx):
    kubectl -n kubernetes-dashboard get svc kubernetes-dashboard

    Give the Dashboard admin access (edit and update the existing clusterrolebinding, or replace it with a new one):
    kubectl create clusterrolebinding dashaccess --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard

    Regards,
    -Chris

  • maybel
    maybel Posts: 45
    Options

    Hi @chrispokorni, I followed all the steps above; it looks like I did right, except for the secret results, and the service account dashboard-kubernetes-dashboard is not in the default namespace. I guess I'm missing something.

    $ kubectl -n kubernetes-dashboard get svc kubernetes-dashboard
    NAME                   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
    kubernetes-dashboard   NodePort   10.99.194.242   <none>        443:30951/TCP   5m47s
    student@cp:~$ kubectl create clusterrolebinding dashaccess --clusterrole=cluster-admin --serviceaccount=kubernetes-dahboard:kubernetes-dashboard
    clusterrolebinding.rbac.authorization.k8s.io/dashaccess created
    student@cp:~$ kubectl get serviceaccounts
    NAME                      SECRETS   AGE
    default                   0         64d
    myingress-ingress-nginx   0         42d
    student@cp:~$ kubectl -n kubernetes-dashboard get serviceaccounts
    NAME                   SECRETS   AGE
    default                0         28m
    kubernetes-dashboard   0         28m
    
  • maybel
    maybel Posts: 45
    Options

    When I tried to open the Kubernetes dashboard, my browser crashed.

  • maybel
    maybel Posts: 45
    Options

    I created recommended.yaml file from the link and modified its type.

    student@cp:~$ kubectl apply -f recommended.yaml
    namespace/kubernetes-dashboard created
    serviceaccount/kubernetes-dashboard created
    service/kubernetes-dashboard created
    secret/kubernetes-dashboard-certs created
    secret/kubernetes-dashboard-csrf created
    secret/kubernetes-dashboard-key-holder created
    configmap/kubernetes-dashboard-settings created
    role.rbac.authorization.k8s.io/kubernetes-dashboard created
    clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
    rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
    clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
    deployment.apps/kubernetes-dashboard created
    service/dashboard-metrics-scraper created
    Warning: spec.template.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: deprecated since v1.19, non-fuctional in a future release; use the "seccompProfile" field instead
    deployment.apps/dashboard-metrics-scraper created
    
  • chrispokorni
    chrispokorni Posts: 2,208
    Options

    Hi @maybel,

    The alternate installation method above was posted in 2021. Since then, the dashboard helm chart has been quite stable. From your comments above, it seems you may be mixing instructions from the lab guide with the ones from my older comment. For consistency I would recommend following the lab guide to install and configure the dashboard chart.

    As far as the browser crashing, I cannot reproduce that, but I know in Chrome you may need to click the advanced button to allow the browser to display unsecured content.

    Regards,
    -Chris

  • maybel
    maybel Posts: 45
    Options

    Thank you, @chrispokorni. I am working on that.

  • maybel
    maybel Posts: 45
    Options

    Hi @chrispokorni, I followed the lab guide. I got all the service accounts but zero secrets, and I wonder how I can fix it.

    Get the Kubernetes Dashboard URL by running:
      export POD_NAME=$(kubectl get pods -n default -l "app.kubernetes.io/name=kubernetes-dashboard,app.kubernetes.io/instance=k8s-dashboard" -o jsonpath="{.items[0].metadata.name}")
      echo https://127.0.0.1:8443/
      kubectl -n default port-forward $POD_NAME 8443:8443
    student@cp:~$ kubectl get serviceaccounts
    NAME                                 SECRETS   AGE
    default                              0         75d
    k8s-dashboard-kubernetes-dashboard   0         3m21s
    myingress-ingress-nginx              0         53d
    student@cp:~$
    
    
  • maybel
    maybel Posts: 45
    Options

    Another problem is the lab said:

    On your local system, open a browser and navigate to an HTTPS URL made of the Public IP and the high-numbered port...

    And I have one port, 443.

  • chrispokorni
    chrispokorni Posts: 2,208
    Options

    Hi @maybel,

    I would not worry about the secrets counts being "0". It is expected in latest k8s releases. Feel free to proceed with the clusterrolebinding and the token creation steps.

    If the values.yaml edit was successful in step 2, then there should be a NodePort type service for the dashboard release, listing 2 distinct port values: an internal port 443 and an external high-valued node port (randomly assigned between 30000 and 32767).

    Regards,
    -Chris

Categories

Upcoming Training