Linkerd > Namerd Resolution Failure in Kubernetes

Hi guys :grinning:

I’m trying to get linkerd working with namerd in kubernetes 1.7.5 in Google container engine.

I have Namerd running and configured and resolves services to pods.

However when configuring linkerd (i’m not really sure whats if its right or not) I get a resolution error for the same service look up, even though it appears linkerd can talk to namerd. in the picture below is namerd and linkderd.

Im not really sure what I’m doing wrong :thinking:

Here are the kubernetes configs:

For reference here are the dtabs (namespaces?) configured in namerd:

#!/bin/sh
# HTTP/1.1 Incoming
set -e
if namerctl dtab get http-incoming > /dev/null 2>&1; then
  echo "http-incoming dtab already exists"
else
  echo "
    /k8s => /#/io.l5d.k8s ;
    /portNsSvc => /#/portNsSvcToK8s ;
    /host => /portNsSvc/http/default ;
    /host => /portNsSvc/http ;
    /svc => /$/io.buoyant.http.domainToPathPfx/host ;
  " | namerctl dtab create http-incoming -
fi
# HTTP/1.1 Outgoing
if namerctl dtab get http-outgoing > /dev/null 2>&1; then
  echo "http-outgoing dtab already exists"
else
  echo "
    /ph  => /$/io.buoyant.rinet ;
    /svc => /ph/80 ;
    /svc => /$/io.buoyant.porthostPfx/ph ;
    /k8s => /#/io.l5d.k8s.h2 ;
    /portNsSvc => /#/portNsSvcToK8s ;
    /host => /portNsSvc/h2/default ;
    /host => /portNsSvc/h2 ;
    /svc => /$/io.buoyant.http.domainToPathPfx/host ;
  " | namerctl dtab create http-outgoing -
fi
# HTTP/2 Incoming
set -e
if namerctl dtab get h2-incoming > /dev/null 2>&1; then
  echo "h2-incoming dtab already exists"
else
  echo "
    /k8s => /#/io.l5d.k8s ;
    /portNsSvc => /#/portNsSvcToK8s ;
    /host => /portNsSvc/h2/default ;
    /host => /portNsSvc/h2 ;
    /svc => /$/io.buoyant.http.domainToPathPfx/host ;
  " | namerctl dtab create h2-incoming -
fi
# HTTP/2 Outgoing
if namerctl dtab get h2-outgoing > /dev/null 2>&1; then
  echo "h2-outgoing dtab already exists"
else
  echo "
    /ph  => /$/io.buoyant.rinet ;
    /svc => /ph/80 ;
    /svc => /$/io.buoyant.porthostPfx/ph ;
    /k8s => /#/io.l5d.k8s.h2 ;
    /portNsSvc => /#/portNsSvcToK8s ;
    /host => /portNsSvc/h2/default ;
    /host => /portNsSvc/h2 ;
    /svc => /$/io.buoyant.http.domainToPathPfx/host ;
  " | namerctl dtab create h2-outgoing -
fi
# gRPC Incoming
set -e
if namerctl dtab get grpc-incoming > /dev/null 2>&1; then
  echo "grpc-incoming dtab already exists"
else
  echo "
    /srv => /#/io.l5d.k8s/default/grpc ;
    /svc => /$/io.buoyant.http.domainToPathPfx/srv ;
  " | namerctl dtab create grpc-incoming -
fi
# gRPC Outgoing
if namerctl dtab get grpc-outgoing > /dev/null 2>&1; then
  echo "grpc-outgoing dtab already exists"
else
  echo "
    /svc => /$/io.buoyant.hostportPfx/hp ;
    /srv => /#/io.l5d.k8s.grpc/default/grpc;
    /svc => /$/io.buoyant.http.domainToPathPfx/srv ;
  " | namerctl dtab create grpc-outgoing -
fi

Solved this myself, I deleted this on a hunch.

     transformers:
    - kind: io.l5d.k8s.daemonset
      namespace: default
      port: http-outgoing
      service: l5d

It’s in the example configs for linkerd-namerd.yaml - I don’t really know what it does lol.

1 Like