anchor.diff:    LINKERD_ELB=$(kubectl get svc l5d -o jsonpath="{.status.loadBalancer.ingress[0].*}")
     open http://$LINKERD_ELB:9990
   
  +The default dashboard looks like as shown:
  +
  +image::linkerd-default-dashboard.png[]
  +
   === Install sample microservices apps
   
   The https://github.com/linkerd/linkerd-examples/tree/master/k8s-daemonset/k8s[Github repo for
  -linkerd examples] has two microservices apps called "hello" and "world". They both communicate
  +linkerd examples] has two microservices apps called "`hello`" and "`world`". They both communicate
   with each other to complete the request. Run this command to install these apps in the default
   namespace.
   
  -  kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -  k8s/hello-world.yml
  -
  -Generate some traffic by running this command and linkerd will show the number of requests being
  -served, connections and bunch of rich data
  +  $ kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +  k8s-daemonset/k8s/hello-world.yml
  +  replicationcontroller "hello" created
  +  service "hello" created
  +  replicationcontroller "world-v1" created
  +  service "world-v1" created
  +
  +Generate some traffic by running this command:
   
     http_proxy=$LINKERD_ELB:4140 curl -s http://hello
   
  +Linkerd will show the number of requests being served, connections and a bunch of rich data:
  +
   image::linkerd.png[]
   
   === Install linkerd-viz
   
  -linkerd-viz is a monitoring application based on https://prometheus.io/[Prometheus] and
  -http://grafana.org/[Grafana]. It can automatically find linkerd instances and services
  +https://github.com/linkerd/linkerd-viz[linkerd-viz] is a monitoring application based on https://prometheus.io/[Prometheus] and http://grafana.org/[Grafana]. It can automatically find linkerd instances and services
   that are installed in your k8s cluster.
   
  -  kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-viz/master/k8s/linkerd-viz.yml
  -
  -You can open linkerd-viz ELB to view the dashboard. As with the previous example, it may take a minute or two before the
  -ELB DNS is available.
  +  $ kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-viz/master/k8s/linkerd-viz.yml
  +  replicationcontroller "linkerd-viz" created
  +  service "linkerd-viz" created
  +
  +You can open linkerd-viz ELB to view the dashboard:
   
     LINKERD_VIZ_ELB=$(kubectl get svc linkerd-viz -o jsonpath="{.status.loadBalancer.ingress[0].*}")
     open http://$LINKERD_VIZ_ELB
   
  +As with the previous example, it may take a minute or two before the ELB DNS is available.
  +
   image::linkerd-viz.png[]
   
   === Per request routing
   
  -We'll use the same 'hello-world' application used in the example above, but this time we'll deploy version 2 of the
  -'world' microservice, and we'll specify on a per request level whether the request should use v1 or v2 of the 'world'
  -microservice.
  -
  -If you haven't already deployed the 'hello-world' application, deploy it now.
  -
  -    kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -    k8s/hello-world.yml
  +We'll use the same "`hello-world`" application used in the example above, but this time we'll deploy version 2 of the
  +"`world`" microservice, and we'll specify on a per request level whether the request should use v1 or v2 of the "`"world`" microservice.
  +
  +If you haven't already deployed the "`hello-world`" application, deploy it now.
  +
  +    kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +    k8s-daemonset/k8s/hello-world.yml
   
   Deploy the linkerd ingress so we can access the application externally.
   
  -    kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -    k8s/linkerd-ingress.yml
  -
  -Now deploy version2 of the `world` microservice.
  -
  -    kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -    k8s/world-v2.yml
  +    $ kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +    k8s-daemonset/k8s/linkerd-ingress.yml
  +    configmap "l5d-config" configured
  +    daemonset "l5d" configured
  +    service "l5d" configured
  +
  +Now deploy version2 of the "`world`" microservice.
  +
  +    $ kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +    k8s-daemonset/k8s/world-v2.yml
  +    replicationcontroller "world-v2" created
  +    service "world-v2" created
   
   Send a request to v1 of the service. It should reply with 'Hello world'.
   
       INGRESS_LB=$(kubectl get svc l5d -o jsonpath="{.status.loadBalancer.ingress[0].*}")
       curl -H 'Host: www.hello.world' $INGRESS_LB
   
  -After a minute or two, it should reply with 'Hello world'.
  -```
  -$  INGRESS_LB=$(kubectl get svc l5d -o jsonpath="{.status.loadBalancer.ingress[0].*}")
  -$  curl -H 'Host: www.hello.world' $INGRESS_LB
  -Hello (100.96.1.12) world (100.96.1.14)
  -```
  +After a minute or two, it should reply with `Hello world` as shown:
  +
  +  Hello (100.96.1.12) world (100.96.1.14)
   
   Now send a request to v2 of the service by modifying the header in the request.
   
       curl -H "Host: www.hello.world" -H "l5d-dtab: /host/world => /srv/world-v2;" $INGRESS_LB
   
  -It should reply with 'Hello earth'.
  -```
  -$ curl -H "Host: www.hello.world" -H "l5d-dtab: /host/world => /srv/world-v2;" $INGRESS_LB
  -Hello (100.96.1.11) earth (100.96.2.14)
  -```
  +It should reply with 'Hello earth' as shown:
  +
  +  Hello (100.96.1.11) earth (100.96.2.14)
  +
   This demonstrates that v1 and v2 of the `world` service are running in the cluster, and you can specify in the
   request header which version of the service to route individual requests to.
   
  -That's it! You can look into linkerd configuration files in https://github.com/linkerd/linkerd-examples/tree/master/k8s-daemonset/k8s[linkerd examples]
  -to learn more.
  +That's it!
  +
  +You can look into linkerd configuration files in https://github.com/linkerd/linkerd-examples/tree/master/k8s-daemonset/k8s[linkerd examples] to learn more.
   
   === Cleanup
   
  -Remove the installed components
  -
  -```
  -kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-viz/master/k8s/linkerd-viz.yml
  -kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -k8s/world-v2.yml
  -kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -k8s/hello-world.yml
  -kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -k8s/linkerd-ingress.yml
  -kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/\
  -k8s/linkerd.yml
  -```
  +Remove the installed components:
  +
  +  kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-viz/master/k8s/linkerd-viz.yml
  +  kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +  k8s-daemonset/k8s/world-v2.yml
  +  kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +  k8s-daemonset/k8s/hello-world.yml
  +  kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +  k8s-daemonset/k8s/linkerd-ingress.yml
  +  kubectl delete -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/\
  +  k8s-daemonset/k8s/linkerd.yml
   
   == Using Istio with Kubernetes
   
  -https://istio.io[Istio] is a layer 4/7 proxy that routes and load balances traffic over HTTP, WebSocket, HTTP/2, gRPC and
  -supports application protocols such as MongoDB and Redis. Istio uses the Envoy proxy to manage all inbound/outbound traffic
  -in the service mesh. Envoy was built by https://www.lyft.com/[Lyft], and in Sept 2017 Envoy became a member of the link:https://www.cncf.io/[CNCF], alongside Kubernetes.
  -Istio is a joint collaboration between Google, IBM and Lyft.
  -
  -https://istio.io[Istio] has a wide variety of traffic management features that live outside the application code, such
  +https://istio.io[Istio] is a layer 4/7 proxy that routes and load balances traffic over HTTP, WebSocket, HTTP/2, gRPC and supports application protocols such as MongoDB and Redis. Istio uses the Envoy proxy to manage all inbound/outbound traffic in the service mesh. Envoy was built by https://www.lyft.com/[Lyft], and in Sept 2017 Envoy became a member of the link:https://www.cncf.io/[CNCF], alongside Kubernetes. Istio is a joint collaboration between Google, IBM and Lyft.
  +
  +Istio has a wide variety of traffic management features that live outside the application code, such
   as A/B testing, phased/canary rollouts, failure recovery, circuit breaker, layer 7 routing and policy enforcement
   (all provided by the Envoy proxy). Istio also supports ACLs, rate limits, quotas, authentication, request tracing and
   telemetry collection using its Mixer component. The goal of the Istio project is to support traffic management and
  
positive.code: 
  == Using Linkerd with Kubernetes
  
  https://linkerd.io/[Linkerd] is a layer 5/7 proxy that routes and load balances traffic over HTTP, Thrift, Mux, HTTP/2 and gRPC.
  Its based on Finagle (built by Twitter), and in January 2017 linkerd became a member of the link:https://www.cncf.io/[CNCF], alongside Kubernetes.
  
  https://linkerd.io/[Linkerd] adds visibility, control, and reliability to your application with
  a wide array of powerful techniques: circuit-breaking, latency-aware load balancing, eventually
  
negative.code: https://istio.io/docs/setup/kubernetes/quick-start.html[Istio quick start]
  
      curl -L https://git.io/getLatestIstio | sh -
      cd istio-0.2.10
      export PATH=$PWD/bin:$PATH
  
  You should now be able to run the `istioctl` CLI
  
    $ istioctl version
    Version: 0.2.10
    GitRevision: f27f2803f59994367c1cca47467c362b1702d605
    GitBranch: release-0.2
    User: sebastienvas@ee792364cfc2
    GolangVersion: go1.8
  
  Install Istio using `kubectl`. This will install Istio into its own namespace, `istio-system`. Change to the
  directory where you downloaded Istio in the step above.
  