A Microservice Architecture breaks up the monolith into many smaller pieces that are composed together. Patterns to secure the communication between services like fault tolerance (via timeout, retry, circuit breaking, etc.) have come up as well as distributed tracing to be able to see where calls are going.
A service mesh can now provide these services on a platform level and frees the application writers from those tasks. Routing decisions are done at the mesh level.
Kiali works with Istio to visualise the service mesh topology, features like circuit breakers or request rates.
Kiali also includes Jaeger Tracing to provide distributed tracing out of the box.
This README is targeted mainly toward Kiali developers. If you are not a developer but want to learn more about Kiali, you will find https://www.kiali.io more helpful. For some instructions on running Kiali without having to git clone this repository or build anything, please see the Getting Started page.
If you have git cloned this repository, you can try to use our hack script to quickly install OpenShift, Maistra (Istio), and Kiali like this:
hack/cluster-openshift.sh --kiali-enabled true upIf you do not already have an Istio-enabled application to test with, you can install one using the Bookinfo Demo install script provided here as a convenience.
There are other demo applications to choose from as well: see some examples.
Kiali is published as a container image on Docker hub at kiali/kiali
See the LICENSE file.
|
Note
|
These build instructions assume you have the following installed on your system: (1) Go Programming Language which must be at least version 1.8.3, (2) git, (3) Docker, and (4) make. To run Kiali on OpenShift after you build it, it is assumed you have a running OpenShift environment available to you. If you do not, you can find a set of instructions on how to set up OpenShift below. To run Kiali on Kubernetes after you built it, it is assumed you have a running Kubernetes environment available to you. |
To build Kiali:
-
Clone this repository inside a GOPATH. These instructions will use the example GOPATH of "/source/kiali/kiali" but you can use whatever you want. Just change the first line of the below instructions to use your GOPATH.
export GOPATH=/source/kiali/kiali
mkdir -p $GOPATH
cd $GOPATH
mkdir -p src/github.com/kiali
cd src/github.com/kiali
git clone git@github.com:kiali/kiali
export PATH=${PATH}:${GOPATH}/bin-
Install Glide - the Go dependency management tool that Kiali uses to build itself
cd ${GOPATH}/src/github.com/kiali/kiali make dep-install
-
Tell the dependency manager tool to update the Kiali dependencies
NoteYou should only run this command if you add, remove, or modify a dependency. If you are simply git cloning and building from source, you should skip this step.
cd ${GOPATH}/src/github.com/kiali/kiali
make dep-update-
Build Kiali
cd ${GOPATH}/src/github.com/kiali/kiali
make build-
At this point you can run the Kiali tests
cd ${GOPATH}/src/github.com/kiali/kiali
make test