- Introduction
- Table of contents
- Building
- Running
- Running on OpenShift or Kubernetes/Minikube
- Building the Container Image
- Pushing Kiali operator and Kiali images to your cluster
- Deploying Kiali operator to your cluster
- Deploying Kiali to your cluster
- Removing Kiali from your cluster
- Reloading Kiali image
- Removing Kiali operator from your cluster
- Running Standalone
- Configuration
- Embedding Kiali
- Configure External Services
- Services API Documentation
- Additional Notes
- Exposing Kiali to External Clients Using Istio Gateway
- Experimental
- Contributing
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 an integration with 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 the Kiali documentation more helpful. For some instructions on running Kiali without having to git clone this repository or build anything, please see the Getting Started page.
To install a OpenShift 4.x cluster in AWS, use this hack script.
Run the hack script with --help for usage details. Here is a brief synopsis:
-
aws-openshift.sh -kuca true create: Create an AWS cluster that includes Service Mesh, Kiali, Jaeger, ElasticSearch -
aws-openshift.sh status: Provides details about your AWS cluster -
aws-openshift.sh oc-env: Provides details about how to set up theocclient in your shell so it can access your AWS cluster -
aws-openshift.sh destroy: Destroy the AWS cluster -
aws-openshift.sh bi-install: Install BookInfo demo in the AWS cluster -
aws-openshift.sh sm-uninstall: Uninstall the Service Mesh and all its components that were previously installed viacreateorsm-install -
aws-openshift.sh sm-install: Re-install the Service Mesh and all its components -
aws-openshift.sh k-uninstall: Uninstall the Kiali component that was installed viacreateorsm-install
Here’s a way you can work with AWS to do Kiali development:
-
aws-openshift.sh -kuca true createto create your cluster with Service Mesh.-kuca truetells the script to create a cluster admin user "kiali" with password "kiali". This takes roughly 30 minutes to complete. -
aws-openshift.sh statusto show you details about your cluster, including "oc login" details as well as the console URL among other things -
If you want to build and deploy your own Kiali:
-
First must uninstall the one that was installed when you created the cluster. To do this, run
aws-openshift.sh k-uninstall -
Next build Kiali and the Kiali operator normally (see below for details on that)
-
Push the dev builds of your Kiali and Kiali operator into the AWS cluster’s image registry via
make cluster-push. -
Create the new Kiali Operator in your AWS cluster via
make operator-create -
Create the new Kiali in your AWS cluster via
make kiali-create -
At this point, your dev build of Kiali should be starting up. Wait for it to come up and then you can access the Kiali UI normally.
-
The container images for Kiali and the Kiali Operator are published on Quay.io in the kiali organization.
See the LICENSE file.
|
Note
|
These build instructions assume you have the following installed on your system: (1) Go Programming Language, (2) git, (3) Docker or Podman , (4) NPM, and (5) make. If you are using podman instead of docker, pass the environment variable DORP=podman when executing make. To run Kiali in a cluster after you build it, it is assumed you have a running OpenShift or Minikube environment available to you.
|
|
Note
|
Currently, Kiali releases are built using Go 1.14. Although Kiali may build correctly using other versions of Go, it’s suggested to use version 1.14 for development to ensure replicatable builds. Makefiles will require this minimum version of Go. |
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
git clone git@github.com:kiali/kiali-operator kiali/operator
git clone git@github.com:kiali/helm-charts kiali/helm-charts
export PATH=${PATH}:${GOPATH}/bin-
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