Giter VIP home page Giter VIP logo

snowcamp-io-kiali's Introduction

Instructions to deploy Istio and Kiali on a running Kubernetes cluster.

Prerequisites

  • A working Kubernetes cluster.
  • kubectl installed in the PATH with a working configuration.
  • Admin role on the Kubernetes cluster.
  • helm client installed in the PATH.

minikube notes

minikube works fine and is easy to deploy provided that you have at 4 CPUs and 8GB of RAM to dedicate.

It also supports services of type LoadBalancer with minikube tunnel.

Steps

Download the Istio release

curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.1.6 sh -
cd istio-1.1.6
export PATH=$PWD/bin:$PATH

Install Istio CRDs

kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml

Deploy Istio

This uses the Helm client to render the Kubernetes manifest locally.

# LoadBalancer requires a Kubernetes cluster that supports this flavor. Set it to NodePort otherwise.
# The Grafana and Jaeger URLs will be accessed through port-forward (see below).
# This enables tracing with 25% of requests sampled.
helm template install/kubernetes/helm/istio --name istio \
    --namespace istio-system \
    --set gateways.enabled=true --set gateways.istio-ingressgateway.type=LoadBalancer \
    --set kiali.enabled=false \
    --set kiali.dashboard.grafanaURL=http://localhost:3000/ --set kiali.dashboard.jaegerURL=http://localhost:16686/ \
    --set prometheus.tag=v2.9.2 \
    --set grafana.enabled=true --set grafana.image.tag=6.1.6 \
    --set tracing.enabled=true --set pilot.traceSampling=25.0 \
    > /tmp/istio.yml


kubectl create namespace istio-system
kubectl apply -f /tmp/istio.yml

# Delete the default ingress gateway that we won't use anyway.
kubectl delete gateways/istio-autogenerated-k8s-ingress

OpenShift variant:

...
--set global.proxy.privileged=true
...

Deploy Kiali

Kiali is deployed using an operator. There's a Bash script in the Kiali project that will setup everything.

bash <(curl -L https://git.io/getLatestKialiOperator)

Note: if using Openshift, you will have the choice to leverage OpenShift OAuth for login.

Check the deployment

kubectl config set-context --current --namespace=istio-system
kubectl get pods

All pods should be either Running or Completed.

NAME                                      READY     STATUS      RESTARTS   AGE
grafana-65bfcb7f7b-bmrx7                  1/1       Running     0          153m
istio-citadel-856f994c58-l5z7j            1/1       Running     0          153m
istio-cleanup-secrets-4dhgt               0/1       Completed   0          153m
istio-egressgateway-5649fcf57-4rz6m       1/1       Running     0          153m
istio-galley-7665f65c9c-6596c             1/1       Running     0          153m
istio-grafana-post-install-h5k9s          0/1       Completed   0          153m
istio-ingressgateway-6755b9bbf6-rhcvl     1/1       Running     0          153m
istio-pilot-56855d999b-5wqcm              2/2       Running     0          153m
istio-policy-6fcb6d655f-txwl5             2/2       Running     0          153m
istio-security-post-install-fh8z4         0/1       Completed   0          153m
istio-sidecar-injector-768c79f7bf-hczjm   1/1       Running     0          153m
istio-telemetry-664d896cf5-rw8wg          2/2       Running     0          153m
istio-tracing-6b994895fd-f4j8j            1/1       Running     0          153m
kiali-67c69889b5-ljsmm                    1/1       Running     0          153m
prometheus-5b8d8fcbdc-xzjzx               1/1       Running     0          149m

Access the Kiali UI

In a separate Shell terminal, run:

kubectl port-forward svc/kiali 20001

Then go to http://localhost:20001/ to access the Kiali dashboard.

For OpenShift, you can just create a route.

oc expose service kiali -n istio-system

Access the other dashboards

In separate terminals, run:

kubectl port-forward -n istio-system svc/prometheus 9090
kubectl port-forward -n istio-system svc/grafana 3000
kubectl port-forward -n istio-system svc/tracing 16686:80

For OpenShift, you can just create routes.

oc expose service prometheus -n istio-system
oc expose service grafana -n istio-system
oc expose service tracing -n istio-system

Simple application scenario

See the httpbin scenario.

Microservices scenario

See the bookinfo scenario.

License

Apache License 2.0, see LICENSE.

snowcamp-io-kiali's People

Contributors

simonpasquier avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.