linkerd2: Getting started demo does not work

Bug Report

What is the issue?

Following the getting started demo steps doesn’t work as expected on docker for mac edge kubernetes

How can it be reproduced?

Follow the steps as is from here https://linkerd.io/2/getting-started/

Logs, error output, etc

$ kubectl -n linkerd logs -f prometheus-66fb47b7d6-q6phq prometheus

level=error ts=2018-12-04T21:31:53.943962383Z caller=main.go:234 component=k8s_client_runtime err="github.com/prometheus/prometheus/discovery/kubernetes/kubernetes.go:306: Failed to list *v1.Pod: Get https://10.96.0.1:443/api/v1/namespaces/linkerd/pods?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refused"

$ kubectl -n linkerd logs -f controller-6b4d8db598-qxpcb public-api
time="2018-12-04T21:59:29Z" level=error msg="Query(max(process_start_time_seconds{}) by (pod, namespace)) failed with: Get http://prometheus.linkerd.svc.cluster.local:9090/api/v1/query?query=max%28process_start_time_seconds%7B%7D%29+by+%28pod%2C+namespace%29: dial tcp 127.0.0.1:9090: connect: connection refused"
time="2018-12-04T22:32:31Z" level=error msg="Query(max(process_start_time_seconds{}) by (pod, namespace)) failed with: Get http://prometheus.linkerd.svc.cluster.local:9090/api/v1/query?query=max%28process_start_time_seconds%7B%7D%29+by+%28pod%2C+namespace%29: dial tcp 127.0.0.1:9090: connect: connection refused"

linkerd check output

kubernetes-api: can initialize the client..................................[ok]
kubernetes-api: can query the Kubernetes API...............................[ok]
kubernetes-api: is running the minimum Kubernetes API version..............[ok]
linkerd-api: control plane namespace exists................................[ok]
linkerd-api: control plane pods are ready..................................[ok]
linkerd-api: can initialize the client.....................................[ok]
linkerd-api: can query the control plane API...............................[ok]
linkerd-api[kubernetes]: control plane can talk to Kubernetes..............[ok]
linkerd-api[prometheus]: control plane can talk to Prometheus..............[FAIL] -- Error calling Prometheus from the control plane: Get http://prometheus.linkerd.svc.cluster.local:9090/api/v1/query?query=max%!p(MISSING)rocess_start_time_seconds%!B(MISSING)%!D(MISSING)%!+(MISSING)by+%!p(MISSING)od%!C(MISSING)+namespace%!:(MISSING) dial tcp 127.0.0.1:9090: connect: connection refused

Status check results are [FAIL]

Environment

  • Kubernetes Version:
➜  ~ kubectl version --short
Client Version: v1.10.3
Server Version: v1.10.3
  • Cluster Environment: (GKE, AKS, kops, …) Docker for mac edge

  • Host OS: Mac OS X - High Sierra 10.13.4

  • Linkerd version:

➜  ~ linkerd version
Client version: stable-2.0.0
Server version: stable-2.0.0

Possible solution

¯_(ツ)_/¯

Additional context

Looks like Linkerd is having trouble accessing the Kubernetes HTTP API and accessing Prometheus either because Prometheus pods aren’t set up right or the DNS entry is messed - most likely the former

I have tried with a fresh install of docker edge and I get the same thing each time

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 17 (8 by maintainers)

Most upvoted comments

ok. by seding the install output to change cluster.local to my cluster suffix, and then piping it into kubectl, it now works as expected.

$ linkerd check                                                                                                                                     
kubernetes-api
--------------
√ can initialize the client
√ can query the Kubernetes API

kubernetes-version
------------------
√ is running the minimum Kubernetes API version

linkerd-existence
-----------------
√ control plane namespace exists
√ controller pod is running
√ can initialize the client
√ can query the control plane API

linkerd-api
-----------
√ control plane pods are ready
√ can query the control plane API
√ [kubernetes] control plane can talk to Kubernetes
√ [prometheus] control plane can talk to Prometheus

linkerd-service-profile
-----------------------
√ no invalid service profiles

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 √