Add Kiali Task to istio.io (#2715)

* add Kiali Task to istio.io
add deprecation notice to the SerivceGraph Task

* add some more instructions on getting the Kiali UI to help assist those on environments like minikube

* add cleanup instructions for kiali

* simplify the section to determine kiali url

* use present tense

* more present tense changes
split up the "Send traffic" item into two actions.

* more verb tense changes to get things more into present tense

* updates based on some feedback

* re-write the "determine kiali url" section

* split login step into two steps - visit with browser, then login

* reword some of the steps involving logging in and looking at the initial pages.

* reword the graph type step - use list items, not numbered, for the different types. Adds the new service graph type.

* reword the examine istio config step

* changes to the api section

* some final changes of the api section and the cleanup section

* trivial fix to capitalization

* some small trivial changes
This commit is contained in:
John Mazzitelli 2018-10-12 13:54:07 -04:00 committed by Frank Budinsky
parent 3f0eb787e5
commit 15d6dee1f3
11 changed files with 227 additions and 3 deletions

View File

@ -1,10 +1,13 @@
---
title: Istio 1.1
weight: 90
weight: 89
icon: notes
draft: true
---
TBD
TODO announcement
{{< relnote_links >}}
## Policies and Telemetry
- **Kiali**. The Service Graph addon has been [deprecated](https://github.com/istio/istio/issues/9066) in favor of [Kiali](https://www.kiali.io). See the [Kiali Task](/docs/tasks/telemetry/kiali/) for more details about Kiali.

View File

@ -10,6 +10,7 @@ aliases:
icon: notes
---
- [Istio 1.1](./1.1)
- [Istio 1.0.2](./1.0.2)
- [Istio 1.0.1](./1.0.1)
- [Istio 1.0](./1.0)

View File

@ -0,0 +1,218 @@
---
title: Visualizing Your Mesh
description: This task shows you how to visualize your services within an Istio mesh.
weight: 49
keywords: [telemetry,visualization]
---
This task shows you how to visualize different aspects of your Istio mesh.
As part of this task, you install the [Kiali](https://www.kiali.io) add-on
and use the web-based graphical user interface to view service graphs of
the mesh and your Istio configuration objects. Lastly, you use the Kiali
Public API to generate graph data in the form of consumable JSON.
This task uses the [Bookinfo](/docs/examples/bookinfo/) sample application as the example throughout.
## Before you begin
> {{< idea_icon >}} The following instructions assume you have installed Helm and use it to install Kiali.
To install Kiali without using Helm, following the [Kiali install instructions](https://www.kiali.io/gettingstarted/).
Create a secret in your Istio namespace with the credentials that you use to
authenticate to Kiali. See the
[Helm README](https://github.com/istio/istio/blob/master/install/kubernetes/helm/istio/README.md#installing-the-chart)
for details. Modify and run the following example commands to create a secret:
```bash
USERNAME=$(echo -n 'admin' | base64)
PASSPHRASE=$(echo -n 'mysecret' | base64)
NAMESPACE=istio-system
kubectl create namespace $NAMESPACE
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: kiali
namespace: $NAMESPACE
labels:
app: kiali
type: Opaque
data:
username: $USERNAME
passphrase: $PASSPHRASE
EOF
```
Once you create the Kiali secret, follow
[the Helm install instructions](/docs/setup/kubernetes/helm-install/) to install Kiali via Helm.
You must use the `--set kiali.enabled=true` option when you run the `helm` command, for example:
{{< text bash >}}
$ helm template --set kiali.enabled=true install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml
$ kubectl apply -f $HOME/istio.yaml
{{< /text >}}
> {{< idea_icon >}} This Task does not discuss Jaeger and Grafana. If
you already installed them in your cluster and you want to see how Kiali
integrates with them, you must pass additional arguments to the
`helm` command, for example:
{{< text bash >}}
$ helm template \
--set kiali.enabled=true \
--set "kiali.dashboard.jaegerURL=http://$(kubectl get svc tracing -o jsonpath='{.spec.clusterIP}'):80" \
--set "kiali.dashboard.grafanaURL=http://$(kubectl get svc grafana -o jsonpath='{.spec.clusterIP}'):3000" \
install/kubernetes/helm/istio \
--name istio --namespace istio-system > $HOME/istio.yaml
$ kubectl apply -f $HOME/istio.yaml
{{< /text >}}
Once you install Istio and Kiali, deploy the [Bookinfo](/docs/examples/bookinfo/) sample application.
## Generating a service graph
1. To verify the service is running in your cluster, run the following command:
{{< text bash >}}
$ kubectl -n istio-system get svc kiali
{{< /text >}}
1. To determine the Bookinfo URL, follow the instructions to determine the [Bookinfo ingress `GATEWAY_URL`](/docs/examples/bookinfo/#determining-the-ingress-ip-and-port).
1. To send traffic to the mesh, you have three options
* Visit `http://$GATEWAY_URL/productpage` in your web browser
* Use the following command multiple times:
{{< text bash >}}
$ curl http://$GATEWAY_URL/productpage
{{< /text >}}
* If you installed the `watch` command in your system, send requests continually with:
{{< text bash >}}
$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
{{< /text >}}
1. To determine the Kiali URL, you use the same `GATEWAY_URL` as the Bookinfo application,
only with a different port.
* If you are running in an environment that has external load balancers,
run this command:
{{< text bash >}}
$ KIALI_URL="http://$(echo $GATEWAY_URL | sed -e s/:.*//):$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http-kiali")].port}')"
$ echo $KIALI_URL
http://172.30.141.9:15029
{{< /text >}}
* If you are running in an environment that does not support external
load balancers (e.g., minikube), run this command:
{{< text bash >}}
$ KIALI_URL="http://$(echo $GATEWAY_URL | sed -e s/:.*//):$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http-kiali")].nodePort}')"
$ echo $KIALI_URL
http://192.168.99.100:31758
{{< /text >}}
1. To visit the Kiali UI, point your browser to `$KIALI_URL`.
1. To log into the Kiali UI, enter the username and passphrase you stored in the Kiali secret in the Kiali login screen. If you used the example secret above, enter a username of `admin` with a passphrase of `mysecret`.
1. View the overview of your mesh in the **Overview** page that appears immediately after you log in.
The **Overview** page displays all the namespaces that have services in your mesh.
The following screenshot shows a similar page:
{{< image width="75%" ratio="58%"
link="./kiali-overview.png"
caption="Example Overview"
>}}
1. To view a namespace graph, click on the `bookinfo` namespace in the Bookinfo namespace card.
The page looks similar to:
{{< image width="75%" ratio="89%"
link="./kiali-graph.png"
caption="Example Graph"
>}}
1. To view a summary of metrics, select any node or edge in the graph to display
its metric details in the summary details panel on the right.
1. To view your service mesh using different graph types, select a graph type
from the **Graph Type** drop down menu. There are several graph types
to choose from: **App**, **Versioned App**, **Workload**, **Service**.
* The **App** graph type aggregates all versions of an app into a single graph node.
The following example shows a single **reviews** node representing the three versions
of the reviews app.
{{< image width="75%" ratio="35%"
link="./kiali-app.png"
caption="Example App Graph"
>}}
* The **Versioned App** graph type shows a node for each version of an app,
but all versions of a particular app are grouped together. The following example
shows the **reviews** group box that contains the three nodes that represents the
three versions of the reviews app.
{{< image width="75%" ratio="67%"
link="./kiali-versionedapp.png"
caption="Example Versioned App Graph"
>}}
* The **Workload** graph type shows a node for each workload in your service mesh.
This graph type does not require you to use the `app` and `version` labels so if you
opt to not use those labels on your components, this is the graph type you will use.
{{< image width="70%" ratio="76%"
link="./kiali-workload.png"
caption="Example Workload Graph"
>}}
* The **Service** graph type shows a node for each service in your mesh but excludes
all apps and workloads from the graph.
{{< image width="70%" ratio="35%"
link="./kiali-service-graph.png"
caption="Example Service Graph"
>}}
1. To examine the details about the Istio configuration, click on the
**Applications**, **Workloads**, and **Services** menu icons on the left menu
bar. The following screenshot shows the Bookinfo applications information:
{{< image width="80%" ratio="56%"
link="./kiali-services.png"
caption="Example Details"
>}}
## About the Kiali Public API
To generate JSON files representing the graphs and other metrics, health, and
configuration information, you can access the
[Kiali Public API](https://www.kiali.io/api/paths).
For example, point your browser to `$KIALI_URL/api/namespaces/bookinfo/graph?graphType=app`
to get the JSON representation of your graph using the `app` graph type.
The Kiali Public API is built on top of Prometheus queries and depends on the
standard Istio metric configuration. It also makes Kubernetes API calls to
obtain additional details about your services. For the best experience using
Kiali, use the metadata labels `app` and `version` on your application
components. As a template, the Bookinfo sample application follows this
convention.
## Cleanup
If you are not planning any follow-up tasks, remove the Bookinfo sample application and Kiali from your cluster.
1. To remove the Bookinfo application, refer to the [Bookinfo cleanup](/docs/examples/bookinfo/#cleanup) instructions.
1. To remove Kiali from a Kubernetes environment, remove all components with the `app=kiali` label:
{{< text bash >}}
$ kubectl delete all,secrets,sa,configmaps,deployments,ingresses,clusterroles,clusterrolebindings,virtualservices,destinationrules --selector=app=kiali -n istio-system
{{< /text >}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -5,6 +5,8 @@ weight: 50
keywords: [telemetry,visualization]
---
> {{< warning_icon >}} The Service Graph is being deprecated in Istio 1.1 in favor of [Kiali](../kiali).
This task shows you how to generate a graph of services within an Istio mesh.
As part of this task, you will install the Servicegraph add-on and use
the web-based interface for viewing service graph of the service mesh.