Linkerd2: 2.7.1 web dashboard - tap service health status issue

Created on 15 Apr 2020  ยท  1Comment  ยท  Source: linkerd/linkerd2

Bug Report

What is the issue?

The health check in the "control plane" section of the LinkerD dashboard reports the following error/warning about the tap API service. The dashboard is running behind an NGINX proxy in a Kubernetes 1.16.5 cluster.

! tap api service is running

apiservices.apiregistration.k8s.io "v1alpha1.tap.linkerd.io" is forbidden: User "system:serviceaccount:linkerd:linkerd-web" cannot get resource "apiservices" in API group "apiregistration.k8s.io" at the cluster scope

see https://linkerd.io/checks/#l5d-tap-api for hints

The recommended URL does not seem to provide anything useful for that situation.

The tap tool is working from the dashboard.

How can it be reproduced?

By clicking "RUN LINKERD CHECK" in the Control Plane of the dashboard.

Logs, error output, etc

The only errors I can see are inside the linkerd tap pods. They happen when you stop the the "tap" tool. I replaced the actual IPs with zeros.

time="2020-04-14T20:48:10Z" level=error msg="[0.0.0.0] encountered an error: rpc error: code = Canceled desc = con
text canceled"
time="2020-04-14T20:48:10Z" level=error msg="[0.0.0.0] encountered an error: rpc error: code = Canceled desc = cont
ext canceled"

linkerd check output

If I run "linkerd check" from my PC, it does not report any security errors:

kubernetes-api
--------------
โˆš can initialize the client
โˆš can query the Kubernetes API

kubernetes-version
------------------
โˆš is running the minimum Kubernetes API version
โˆš is running the minimum kubectl version

linkerd-existence
-----------------
โˆš 'linkerd-config' config map exists
โˆš heartbeat ServiceAccount exist
โˆš control plane replica sets are ready
โˆš no unschedulable pods
โˆš controller pod is running
โˆš can initialize the client
โˆš can query the control plane API

linkerd-config
--------------
โˆš control plane Namespace exists
โˆš control plane ClusterRoles exist
โˆš control plane ClusterRoleBindings exist
โˆš control plane ServiceAccounts exist
โˆš control plane CustomResourceDefinitions exist
โˆš control plane MutatingWebhookConfigurations exist
โˆš control plane ValidatingWebhookConfigurations exist
โˆš control plane PodSecurityPolicies exist

linkerd-identity
----------------
โˆš certificate config is valid
โˆš trust roots are using supported crypto algorithm
โˆš trust roots are within their validity period
โˆš trust roots are valid for at least 60 days
โˆš issuer cert is using supported crypto algorithm
โˆš issuer cert is within its validity period
โˆš issuer cert is valid for at least 60 days
โˆš issuer cert is issued by the trust root

linkerd-api
-----------
โˆš control plane pods are ready
โˆš control plane self-check
โˆš [kubernetes] control plane can talk to Kubernetes
โˆš [prometheus] control plane can talk to Prometheus
โˆš tap api service is running

linkerd-version
---------------
โˆš can determine the latest version
โˆš cli is up-to-date

control-plane-version
---------------------
โˆš control plane is up-to-date
โˆš control plane and cli versions match

Status check results are โˆš

Environment

  • Kubernetes Version: 1,16.5
  • Cluster Environment: AKS
  • Host OS: Ubuntu LTS 16.04
  • Linkerd version: 2.7.1

Possible solution

Additional context

areweb bug help wanted

Most helpful comment

RBAC is tough! This is an issue with the service account that the dashboard is running under and is innocuous (though we should fix it). Thank you for the report!

>All comments

RBAC is tough! This is an issue with the service account that the dashboard is running under and is innocuous (though we should fix it). Thank you for the report!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ihcsim picture ihcsim  ยท  4Comments

geekmush picture geekmush  ยท  4Comments

franziskagoltz picture franziskagoltz  ยท  3Comments

ihcsim picture ihcsim  ยท  4Comments

manimaul picture manimaul  ยท  3Comments