Squashed 5 commits for modularized tutorial file for TP12.
@@ -791,6 +791,16 @@ Topics:
|
||||
File: installing-mt-ossm
|
||||
- Name: Deploying applications on service mesh
|
||||
File: prepare-to-deploy-applications-ossm
|
||||
- Name: Example application
|
||||
File: ossm-example-bookinfo
|
||||
- Name: Kiali tutorial
|
||||
File: ossm-tutorial-kiali
|
||||
- Name: Distributed tracing tutorial
|
||||
File: ossm-tutorial-jaeger-tracing
|
||||
- Name: Grafana tutorial
|
||||
File: ossm-tutorial-grafana
|
||||
- Name: Prometheus tutorial
|
||||
File: ossm-tutorial-prometheus
|
||||
- Name: Removing service mesh
|
||||
File: removing-ossm
|
||||
- Name: 3scale adapter
|
||||
@@ -798,6 +808,7 @@ Topics:
|
||||
Topics:
|
||||
- Name: Using the 3scale Istio adapter
|
||||
File: threescale-adapter
|
||||
|
||||
#- Name: Service Mesh Release Notes
|
||||
# Dir: service_mesh_release_notes
|
||||
# Topics:
|
||||
|
||||
BIN
images/ossm-grafana-dashboard-no-traffic.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
images/ossm-grafana-home-screen.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
images/ossm-grafana-mesh-no-traffic.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
images/ossm-grafana-mesh-with-traffic.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
images/ossm-grafana-services.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
images/ossm-grafana-workloads.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
images/ossm-jaeger-main-screen.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
images/ossm-jaeger-spans.png
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
images/ossm-kiali-applications-details.png
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
images/ossm-kiali-graph.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
images/ossm-kiali-istio-config.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
images/ossm-kiali-istio-config2.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
images/ossm-kiali-legend.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
images/ossm-kiali-login.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
images/ossm-kiali-overview.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
images/ossm-kiali-services-details.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
images/ossm-kiali-services-list.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
images/ossm-kiali-workloads-details.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
images/ossm-prometheus-home-screen.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
images/ossm-prometheus-metrics.png
Normal file
|
After Width: | Height: | Size: 232 KiB |
@@ -1,10 +1,9 @@
|
||||
// Standard document attributes to be used in the documentation
|
||||
// Standard document attributes to be used in the Service Mesh documentation
|
||||
//
|
||||
// The following are shared by all documents:
|
||||
// The following are shared by all RHOSSM documents:
|
||||
:toc:
|
||||
:toclevels: 4
|
||||
//NOTE: Actual directory is content/img, but the symlink uses the names the ccutil expects
|
||||
// :imagesdir: servicemesh-install/images
|
||||
:imagesdir: service_mesh/images
|
||||
:experimental:
|
||||
//
|
||||
// Product content attributes, that is, substitution variables in the files.
|
||||
|
||||
34
modules/ossm-tutorial-bookinfo-adding-destination-rules.adoc
Normal file
@@ -0,0 +1,34 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-bookinfo.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-bookinfo-adding-destination-rules_{context}"]
|
||||
= Adding default destination rules
|
||||
|
||||
Before you can use the Bookinfo application, you have to add default destination rules. There are two preconfigured yaml files, depending on whether or not you enabled mutual transport layer security (TLS) authentication.
|
||||
|
||||
.Procedure
|
||||
|
||||
. To add destination rules, run one of the following commands:
|
||||
** If you did not enable mutual TLS:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc apply -n myproject -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all.yaml
|
||||
----
|
||||
|
||||
** If you enabled mutual TLS:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc apply -n myproject -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all-mtls.yaml
|
||||
----
|
||||
|
||||
+
|
||||
. To list all available destination rules:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc get destinationrules -o yaml
|
||||
----
|
||||
60
modules/ossm-tutorial-bookinfo-install.adoc
Normal file
@@ -0,0 +1,60 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-bookinfo.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-bookinfo-install_{context}"]
|
||||
= Installing the Bookinfo application
|
||||
|
||||
The following steps describe deploying and running the Bookinfo tutorial on OpenShift Container Platform with {ProductShortName} {ProductVersion}.
|
||||
|
||||
.Prerequisites:
|
||||
|
||||
* {product-title} 3.11 or higher installed.
|
||||
* {ProductName} {ProductVersion} installed.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
{ProductName} implements auto-injection differently than the upstream Istio project, therefore this procedure uses a version of the `bookinfo.yaml` file annotated to enable automatic injection of the Istio sidecar.
|
||||
====
|
||||
|
||||
.Procedure
|
||||
|
||||
. Create a project for the Bookinfo application.
|
||||
+
|
||||
|
||||
----
|
||||
$ oc new-project myproject
|
||||
----
|
||||
|
||||
+
|
||||
. Update the Security Context Constraints (SCC) by adding the service account used by Bookinfo to the `anyuid` and `privileged` SCCs in the _"myproject"_ Namespace:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc adm policy add-scc-to-user anyuid -z default -n myproject
|
||||
$ oc adm policy add-scc-to-user privileged -z default -n myproject
|
||||
----
|
||||
|
||||
+
|
||||
. Deploy the Bookinfo application in the _"myproject"_ Namespace by applying the `bookinfo.yaml` file:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc apply -n myproject -f https://raw.githubusercontent.com/Maistra/bookinfo/master/bookinfo.yaml
|
||||
----
|
||||
|
||||
+
|
||||
. Create the ingress gateway for Bookinfo by applying the `bookinfo-gateway.yaml` file:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc apply -n myproject -f https://raw.githubusercontent.com/Maistra/bookinfo/master/bookinfo-gateway.yaml
|
||||
----
|
||||
|
||||
. Set the value for the `GATEWAY_URL` parameter:
|
||||
+
|
||||
|
||||
----
|
||||
$ export GATEWAY_URL=$(oc get route -n istio-system istio-ingressgateway -o jsonpath='{.spec.host}')
|
||||
----
|
||||
22
modules/ossm-tutorial-bookinfo-overview.adoc
Normal file
@@ -0,0 +1,22 @@
|
||||
////
|
||||
This CONCEPT module included in the following assemblies:
|
||||
- ossm-tutorial-bookinfo.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-bookinfo-overview_{context}"]
|
||||
= Bookinfo application
|
||||
|
||||
The upstream Istio project has an example tutorial called https://istio.io/docs/examples/bookinfo[bookinfo], which is composed of four separate microservices used to demonstrate various Istio features. The Bookinfo application displays information about a book, similar to a single catalog entry of an online book store. Displayed on the page is a description of the book, book details (ISBN, number of pages and other information), and book reviews.
|
||||
|
||||
The Bookinfo application consists of four separate microservices:
|
||||
|
||||
* The `productpage` microservice calls the `details` and `reviews` microservices to populate the page.
|
||||
* The `details` microservice contains book information.
|
||||
* The `reviews` microservice contains book reviews. It also calls the `ratings` microservice.
|
||||
* The `ratings` microservice contains book ranking information that accompanies a book review.
|
||||
|
||||
There are three versions of the reviews microservice:
|
||||
|
||||
* Version v1 does not call the `ratings` Service.
|
||||
* Version v2 calls the `ratings` Service and displays each rating as one to five black stars.
|
||||
* Version v3 calls the `ratings` Service and displays each rating as one to five red stars.
|
||||
42
modules/ossm-tutorial-bookinfo-removing.adoc
Normal file
@@ -0,0 +1,42 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-bookinfo.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-bookinfo-removing_{context}"]
|
||||
= Removing the Bookinfo application
|
||||
|
||||
When you finish with the Bookinfo application, you can remove it by running the cleanup script.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Several of the other {ProductShortName} tutorials also use the Bookinfo application. Do not run the cleanup script if you plan to explore other {ProductShortName} tutorials.
|
||||
====
|
||||
.Procedure
|
||||
|
||||
. Download the cleanup script:
|
||||
+
|
||||
|
||||
----
|
||||
$ curl -o cleanup.sh https://raw.githubusercontent.com/Maistra/bookinfo/master/cleanup.sh && chmod +x ./cleanup.sh
|
||||
----
|
||||
|
||||
. Delete the Bookinfo virtualservice, gateway, and terminate the Pods by running the cleanup script:
|
||||
+
|
||||
|
||||
----
|
||||
$ ./cleanup.sh
|
||||
namespace ? [default] myproject
|
||||
----
|
||||
|
||||
. Confirm shutdown by running these commands:
|
||||
+
|
||||
|
||||
----
|
||||
$ oc get virtualservices -n myproject
|
||||
No resources found.
|
||||
$ oc get gateway -n myproject
|
||||
No resources found.
|
||||
$ oc get pods -n myproject
|
||||
No resources found.
|
||||
----
|
||||
26
modules/ossm-tutorial-bookinfo-verify-install.adoc
Normal file
@@ -0,0 +1,26 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-bookinfo.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-bookinfo-verify-install_{context}"]
|
||||
= Verifying the Bookinfo installation
|
||||
|
||||
Before configuring your application, verify that it successfully deployed.
|
||||
|
||||
.Procedure
|
||||
|
||||
* To confirm that the application is deployed:
|
||||
|
||||
** Run this command:
|
||||
+
|
||||
----
|
||||
$ curl -o /dev/null -s -w "%{http_code}\n" http://<GATEWAY_URL>/productpage
|
||||
----
|
||||
+
|
||||
** Alternatively, you can open `http://<GATEWAY_URL>/productpage` in your browser.
|
||||
|
||||
////
|
||||
TO DO
|
||||
Add screen shot of bookinfo.
|
||||
////
|
||||
54
modules/ossm-tutorial-grafana-accessing.adoc
Normal file
@@ -0,0 +1,54 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-grafana.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-grafana-accessing_{context}"]
|
||||
= Accessing the Grafana dashboard
|
||||
|
||||
The Grafana dashboard's web-based interface lets you visualize your metrics data.
|
||||
|
||||
.Prerequisites:
|
||||
|
||||
* {product-title} 3.11 or higher installed.
|
||||
* {ProductName} {ProductVersion} installed.
|
||||
* `Bookinfo` demonstration application installed.
|
||||
|
||||
|
||||
|
||||
.Procedure
|
||||
. A route to access the Grafana dashboard already exists. Query for details of the route:
|
||||
+
|
||||
----
|
||||
$ export GRAFANA_URL=$(oc get route -n istio-system grafana -o jsonpath='{.spec.host}')
|
||||
----
|
||||
+
|
||||
. Launch a browser and navigate to navigate to `http://<GRAFANA_URL>`. You see Grafana's home screen, as shown in the following figure:
|
||||
+
|
||||
image::ossm-grafana-home-screen.png[]
|
||||
+
|
||||
. From the menu in the upper-left corner, select *Istio Mesh Dashboard* to see Istio mesh metrics.
|
||||
+
|
||||
image::ossm-grafana-mesh-no-traffic.png[]
|
||||
+
|
||||
. Generate some traffic by accessing the Bookinfo application:
|
||||
+
|
||||
----
|
||||
$ curl -o /dev/null http://<GATEWAY_URL>/productpage
|
||||
----
|
||||
+
|
||||
The dashboard reflects the traffic through the mesh, similar to the following figure:
|
||||
+
|
||||
image::ossm-grafana-mesh-with-traffic.png[]
|
||||
+
|
||||
. To see detailed metrics for a Service, click on a Service name in the *Service* column. The Service dashboard resembles the following figure:
|
||||
+
|
||||
image::ossm-grafana-services.png[]
|
||||
+
|
||||
Note that *TCP Bandwidth* metrics are empty, because Bookinfo only uses http-based Services. The dashboard also displays metrics for Workloads that call the *Client Workloads* Service and for Workloads that process requests from the *Service Workloads*. You can switch to a different Service or filter metrics by client and Service Workloads by using the menus at the top of the dashboard.
|
||||
+
|
||||
. To switch to the Workloads dashboard, click *Istio Workload Dashboard* on the menu in the upper-left corner. You will see a screen resembling the following figure:
|
||||
+
|
||||
image::ossm-grafana-workloads.png[]
|
||||
+
|
||||
This dashboard shows Workload metrics and metrics for client (inbound) and Service (outbound) Workloads. You can switch to a different Workload; to filter metrics by inbound or outbound Workloads, use the menus at the top of the dashboard.
|
||||
36
modules/ossm-tutorial-jaeger-generating-traces.adoc
Normal file
@@ -0,0 +1,36 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-jaeger-tracing.adoc
|
||||
////
|
||||
|
||||
[[generating-traces-analyzing-trace-data]]
|
||||
= Generating traces and analyzing trace data
|
||||
|
||||
This tutorial uses {ProductShortName} and the `bookinfo` tutorial to demonstrate how you can perform a trace using the Jaeger component of {ProductName}.
|
||||
|
||||
.Prerequisites:
|
||||
|
||||
* {product-title} 3.11 or higher installed.
|
||||
* {ProductName} {ProductVersion} installed.
|
||||
* `Bookinfo` demonstration application installed.
|
||||
|
||||
.Procedure
|
||||
. After you have deployed the Bookinfo application you will need to generate calls to the Bookinfo application so that you have some trace data to analyze. Access http://<GATEWAY_URL>/productpage and refresh the page a few times to generate some trace data.
|
||||
. A route to access the Jaeger dashboard already exists. Query for details of the route:
|
||||
+
|
||||
----
|
||||
$ export JAEGER_URL=$(oc get route -n istio-system jaeger-query -o jsonpath='{.spec.host}')
|
||||
----
|
||||
+
|
||||
. Launch a browser and navigate to `https://<JAEGER_URL>`.
|
||||
|
||||
. In the left pane of the Jaeger dashboard, from the Service menu, select "productpage" and click the *Find Traces* button at the bottom of the pane. A list of traces is displayed, as shown in the following image:
|
||||
|
||||
+
|
||||
image::ossm-jaeger-main-screen.png[]
|
||||
+
|
||||
. Click one of the traces in the list to open a detailed view of that trace. If you click on the top (most recent) trace, you see the details that correspond to the latest refresh of the ``/productpage`.
|
||||
+
|
||||
image::ossm-jaeger-spans.png[]
|
||||
+
|
||||
The trace in the previous figure consists of a few nested spans, each corresponding to a Bookinfo Service call, all performed in response to a ``/productpage` request. Overall processing time was 2.62s, with the *details* Service taking 3.56ms, the *reviews* Service taking 2.6s, and the *ratings* Service taking 5.32ms. Each of the calls to remote Services is represented by a client-side and server-side span. For example, the *details* client-side span is labeled `productpage details.myproject.svc.cluster.local:9080`. The span nested underneath it, labeled `details details.myproject.svc.cluster.local:9080`, corresponds to the server-side processing of the request. The trace also shows calls to *istio-policy*, which reflect authorization checks made by Istio.
|
||||
48
modules/ossm-tutorial-kiali-accessing-console.adoc
Normal file
@@ -0,0 +1,48 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-accessing-console_{context}"]
|
||||
= Accessing the Kiali console
|
||||
|
||||
The Kiali console provides visualization and observability for your Service mesh. The Kiali console has different views that provide insights into Service mesh components at different levels, from Applications to Services to Workloads. It also provides validation for Istio configurations.
|
||||
|
||||
.Prerequisites
|
||||
|
||||
* {product-title} 3.11 or higher installed.
|
||||
* {ProductName} {ProductVersion} installed.
|
||||
* Kiali parameters specified in the custom resource file.
|
||||
* `Bookinfo` demonstration application installed.
|
||||
|
||||
|
||||
|
||||
.Procedure
|
||||
. A route to access the Kiali console already exists. Run the following command to obtain the route and Kiali URL:
|
||||
+
|
||||
----
|
||||
$ oc get routes
|
||||
----
|
||||
+
|
||||
.Sample output showing routes
|
||||
+
|
||||
----
|
||||
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
|
||||
grafana grafana-istio-system.127.0.0.1.nip.io grafana http None
|
||||
istio-ingress istio-ingress-istio-system.127.0.0.1.nip.io istio-ingress http None
|
||||
istio-ingressgateway istio-ingressgateway-istio-system.127.0.0.1.nip.io istio-ingressgateway http None
|
||||
jaeger-query jaeger-query-istio-system.127.0.0.1.nip.io jaeger-query jaeger-query edge None
|
||||
kiali kiali-istio-system.127.0.0.1.nip.io kiali <all> None
|
||||
prometheus prometheus-istio-system.127.0.0.1.nip.io prometheus http-prometheus None
|
||||
tracing tracing-istio-system.127.0.0.1.nip.io tracing tracing edge None
|
||||
----
|
||||
+
|
||||
. Launch a browser and navigate to https://<KIALI_URL> (in the output example, this is `kiali-istio-system.127.0.0.1.nip.io`). You should see the Kiali console login screen.
|
||||
|
||||
. Log in to the Kiali console using the user name and password that you specified in the custom resource file during installation.
|
||||
+
|
||||
When you first log in you see the Overview page, which provides a quick overview of the health of the various Namespaces that are part of your {ProductShortName}.
|
||||
+
|
||||
image:ossm-kiali-overview.png[Overview Page]
|
||||
+
|
||||
. Use the left navigation or click one of the Namespace icons to view your Applications, Workloads, or Services.
|
||||
20
modules/ossm-tutorial-kiali-applications-page.adoc
Normal file
@@ -0,0 +1,20 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-applications-page_{context}"]
|
||||
= Exploring the Applications page
|
||||
|
||||
The Applications page lets you search for and view applications, their health, and other details.
|
||||
|
||||
.Procedure
|
||||
. Click *Applications* in the left navigation.
|
||||
. If necessary, select `bookinfo` from the *Namespace* menu. The page displays the applications in the selected Namespace and their health.
|
||||
. Hover over the Health icon to view additional health details.
|
||||
. Click the `reviews` Service to view the details for that application.
|
||||
+
|
||||
image:ossm-kiali-applications-details.png[Kiali Applications details]
|
||||
+
|
||||
. On the Applications Details page you can view more detailed health information, and drill down for further details about the three versions of the `reviews` Service.
|
||||
. From the Application Details page you can also click tabs to view Traffic and Inbound and Outbound Metrics for the application.
|
||||
25
modules/ossm-tutorial-kiali-graph.adoc
Normal file
@@ -0,0 +1,25 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-graph_{context}"]
|
||||
= Exploring the Graph page
|
||||
|
||||
The Graph page shows a graph of microservices, which are connected by the requests going through them. On this page, you can see how Applications, Workloads, or Services interact with each other.
|
||||
|
||||
.Procedure
|
||||
. Click *Graph* in the left navigation.
|
||||
+
|
||||
image:ossm-kiali-graph.png[Kiali graph]
|
||||
+
|
||||
. If necessary, select `bookinfo` from the *Namespace* menu. The graph displays the applications in the Bookinfo application.
|
||||
. Click the question mark (?) under the *Namespace* menu to take the Graph Help Tour.
|
||||
. Click *Done* to close the Help Tour.
|
||||
. Click *Legend* in the lower left corner. Kiali displays the graph legend.
|
||||
+
|
||||
image:ossm-kiali-legend.png[Kiali legend]
|
||||
+
|
||||
. Close the Graph Legend.
|
||||
. Hover over the *productpage* Node. Note how the graph highlights only the incoming and outgoing traffic from the Node.
|
||||
. Click the *productpage* Node. Note how the details on the right side of the page change to display the *productpage* details.
|
||||
19
modules/ossm-tutorial-kiali-istio-config.adoc
Normal file
@@ -0,0 +1,19 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-istio-config_{context}"]
|
||||
= Exploring the Istio Config page
|
||||
|
||||
The Istio Config page lets you view all of the currently running configurations to your {ProductShortName}, such as Circuit Breakers, Destination Rules, Fault Injection, Gateways, Routes, Route Rules, and Virtual Services.
|
||||
|
||||
.Procedure
|
||||
. Click *Istio Config* in the left navigation.
|
||||
. If necessary, select `bookinfo` from the *Namespace* menu. The page displays a listing of configurations running in the selected Namespace and validation status.
|
||||
+
|
||||
image:ossm-kiali-istio-config.png[Istio configuration]
|
||||
+
|
||||
. Click one of the configurations to view additional information about the configuration file.
|
||||
+
|
||||
image:ossm-kiali-istio-config2.png[Istio Configuration YAML]
|
||||
28
modules/ossm-tutorial-kiali-services-page.adoc
Normal file
@@ -0,0 +1,28 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-services-page_{context}"]
|
||||
= Exploring the Services page
|
||||
|
||||
The Services page lets you search for and view Services, their health, and other details.
|
||||
|
||||
.Procedure
|
||||
. Click *Services* in the left navigation.
|
||||
. If necessary, select `bookinfo` from the *Namespace* menu. The page displays a listing of all the Services that are running in the selected Namespace and additional information about them, such as health status.
|
||||
. Hover over the health icon for any of the Services to view health information about the Service. A Service is considered healthy when it is online and responding to requests without errors.
|
||||
. Click the *Reviews* Service to view its details. Note that there are three different versions of this Service.
|
||||
+
|
||||
image:ossm-kiali-services-details.png[Kiali Services details]
|
||||
+
|
||||
. On the Services Details page you can view an overview of Workloads, virtual Services, and destination rules associated with the Service.
|
||||
. From the Services Details page you can also click tabs to view Traffic, Inbound Metrics, and Traces for the Service.
|
||||
. Click the Actions menu. From here you can perform the following actions:
|
||||
|
||||
* Create Weighted Routing
|
||||
* Create Matching Routing
|
||||
* Suspend Traffic
|
||||
* Delete ALL Traffic Routing
|
||||
|
||||
. Click the name of one of the Services to view additional details about that specific version of the Service.
|
||||
19
modules/ossm-tutorial-kiali-workloads-page.adoc
Normal file
@@ -0,0 +1,19 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-kiali.adoc
|
||||
////
|
||||
|
||||
[id="ossm-kiali-tutorial-workloads-page_{context}"]
|
||||
= Exploring the Workloads page
|
||||
|
||||
The Workloads page lets you search for and view Workloads, their health, and other details.
|
||||
|
||||
.Procedure
|
||||
. Click *Workloads* in the left navigation.
|
||||
. If necessary, select `bookinfo` from the *Namespace* menu. The page displays the Workloads in the selected Namespace, their health, and labels.
|
||||
. Click the `reviews-v1` Workload to view the details for that Workload.
|
||||
. On the Workload Details page you can view an overview of Pods and Services associated with the Workload.
|
||||
+
|
||||
image:ossm-kiali-workloads-details.png[Kiali Workloads details]
|
||||
+
|
||||
. From the Workload Details page you can also click tabs to view Traffic, Logs, and Inbound and Outbound Metrics for the Workload.
|
||||
62
modules/ossm-tutorial-prometheus-querying-metrics.adoc
Normal file
@@ -0,0 +1,62 @@
|
||||
////
|
||||
This TASK module included in the following assemblies:
|
||||
- ossm-tutorial-prometheus.adoc
|
||||
////
|
||||
|
||||
[id="ossm-tutorial-prometheus-querying-metrics_{context}"]
|
||||
= Querying Prometheus metrics
|
||||
|
||||
This tutorial uses {ProductShortName} and the `bookinfo` tutorial to demonstrate how you can query for metrics using Prometheus.
|
||||
|
||||
.Prerequisites:
|
||||
|
||||
* {product-title} 3.11 or higher installed.
|
||||
* {ProductName} {ProductVersion} installed.
|
||||
* `Bookinfo` demonstration application installed.
|
||||
|
||||
After you have verified the Bookinfo application has deployed, you will need to generate calls to the application before you query for metrics.
|
||||
|
||||
.Procedure
|
||||
|
||||
. Verify that the `prometheus` Service is running in your cluster. In Kubernetes environments, execute the following command:
|
||||
+
|
||||
----
|
||||
$ oc get svc prometheus -n istio-system
|
||||
----
|
||||
+
|
||||
You will see something like the following:
|
||||
+
|
||||
----
|
||||
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
prometheus 10.59.241.54 <none> 9090/TCP 2m
|
||||
----
|
||||
+
|
||||
. Generate network traffic by accessing the Bookinfo application:
|
||||
+
|
||||
----
|
||||
$ curl -o /dev/null http://$GATEWAY_URL/productpage
|
||||
----
|
||||
+
|
||||
. A route to access the Prometheus user interface already exists. Query for details of the route:
|
||||
+
|
||||
----
|
||||
$ export PROMETHEUS_URL=$(oc get route -n istio-system prometheus -o jsonpath='{.spec.host}')
|
||||
----
|
||||
+
|
||||
. Launch a browser and navigate to `http://<PROMETHEUS_URL>`. You will see the Prometheus home screen, similar to the following figure:
|
||||
+
|
||||
image::ossm-prometheus-home-screen.png[]
|
||||
+
|
||||
. In the *Expression* field, enter `istio_request_duration_seconds_count`, and click the `Execute` button. You will see a screen similar to the following figure:
|
||||
+
|
||||
image::ossm-prometheus-metrics.png[]
|
||||
+
|
||||
. You can narrow down queries by using selectors. For example `istio_request_duration_seconds_count{destination_workload="reviews-v2"}` shows only counters with the matching *destination_workload* label. For more information about using queries, see the link:https://prometheus.io/docs/prometheus/latest/querying/basics/#instant-vector-selectors[Prometheus documentation].
|
||||
+
|
||||
. To list all available Prometheus metrics, run the following command:
|
||||
+
|
||||
----
|
||||
$ oc get prometheus -n istio-system -o jsonpath='{.items[*].spec.metrics[*].name}' requests_total request_duration_seconds request_bytes response_bytes tcp_sent_bytes_total tcp_received_bytes_total
|
||||
----
|
||||
+
|
||||
Note that returned metric names must be prepended with `istio_` when used in queries, for example, `requests_total` is `istio_requests_total`.
|
||||
20
service_mesh/service_mesh_install/ossm-example-bookinfo.adoc
Normal file
@@ -0,0 +1,20 @@
|
||||
[id="ossm-bookinfo-tutorial"]
|
||||
= Example Application
|
||||
include::modules/ossm-document-attributes.adoc[]
|
||||
:context: ossm-bookinfo-tutorial
|
||||
|
||||
toc::[]
|
||||
|
||||
// The following include statements pull in the module files that comprise the assembly.
|
||||
|
||||
include::modules/ossm-tutorial-bookinfo-overview.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-bookinfo-install.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-bookinfo-verify-install.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-bookinfo-adding-destination-rules.adoc[leveloffset=+1]
|
||||
|
||||
Now that you have a sample application, you can use the other tutorials in this guide to examine your service mesh.
|
||||
|
||||
include::modules/ossm-tutorial-bookinfo-removing.adoc[leveloffset=+1]
|
||||
12
service_mesh/service_mesh_install/ossm-tutorial-grafana.adoc
Normal file
@@ -0,0 +1,12 @@
|
||||
[id="ossm-grafana-tutorial"]
|
||||
= Grafana Tutorial
|
||||
include::modules/ossm-document-attributes.adoc[]
|
||||
:context: ossm-grafana-tutorial
|
||||
|
||||
Grafana is an open source a tool for creating monitoring and metric analytics and dashboards. You use Grafana to query, visualize, and alert on your metrics no matter where they are stored: Graphite, Elasticsearch, OpenTSDB, Prometheus, or InfluxDB. Istio includes monitoring via Prometheus and Grafana.
|
||||
|
||||
This tutorial uses {ProductShortName} and the `bookinfo` tutorial to demonstrate how to set up and use the Istio Dashboard to monitor mesh traffic. As part of this task, you install the Grafana Istio add-on to view service mesh traffic data.
|
||||
|
||||
// The following include statements pull in the module files that comprise the assembly.
|
||||
|
||||
include::modules/ossm-tutorial-grafana-accessing.adoc[leveloffset=+1]
|
||||
@@ -0,0 +1,10 @@
|
||||
[id="ossm-tutorial-jaeger-tracing"]
|
||||
= Distributed tracing tutorial
|
||||
include::modules/ossm-document-attributes.adoc[]
|
||||
:context: ossm-jaeger-tutorial
|
||||
|
||||
Jaeger is an open source distributed tracing system. You use Jaeger for monitoring and troubleshooting microservices-based distributed systems. Using Jaeger you can perform a trace, which follows the path of a request through various microservices that make up an application. Jaeger is installed by default as part of the Service Mesh.
|
||||
|
||||
// The following include statements pull in the module files that comprise the assembly.
|
||||
|
||||
include::modules/ossm-tutorial-jaeger-generating-traces.adoc[leveloffset=+1]
|
||||
24
service_mesh/service_mesh_install/ossm-tutorial-kiali.adoc
Normal file
@@ -0,0 +1,24 @@
|
||||
[id="ossm-kiali-tutorial"]
|
||||
= Kiali tutorial
|
||||
include::modules/ossm-document-attributes.adoc[]
|
||||
:context: ossm-kiali-tutorial
|
||||
|
||||
toc::[]
|
||||
|
||||
Kiali works with Istio to visualize your service mesh topology to provide visibility into features like circuit breakers, request rates, and more. Kiali offers insights about the mesh components at different levels, from abstract Applications to Services and Workloads. Kiali provides an interactive graph view of your Namespace in real time. It can display the interactions at several levels (applications, versions, workloads) with contextual information and charts on the selected graph node or edge.
|
||||
|
||||
This tutorial uses {ProductShortName} and the `bookinfo` tutorial to demonstrate how you can use the Kiali console to view the topography and health of your service mesh.
|
||||
|
||||
// The following include statements pull in the module files that comprise the assembly.
|
||||
|
||||
include::modules/ossm-tutorial-kiali-accessing-console.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-kiali-graph.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-kiali-applications-page.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-kiali-workloads-page.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-kiali-services-page.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/ossm-tutorial-kiali-istio-config.adoc[leveloffset=+1]
|
||||
@@ -0,0 +1,10 @@
|
||||
[id="ossm-prometheus-tutorial"]
|
||||
= Prometheus tutorial
|
||||
include::modules/ossm-document-attributes.adoc[]
|
||||
:context: ossm-prometheus-tutorial
|
||||
|
||||
Prometheus is an open source system and service monitoring toolkit. Prometheus collects metrics from configured targets at specified intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. Grafana or other API consumers can be used to visualize the collected data.
|
||||
|
||||
// The following include statements pull in the module files that comprise the assembly.
|
||||
|
||||
include::modules/ossm-tutorial-prometheus-querying-metrics.adoc[leveloffset=+1]
|
||||
@@ -1 +0,0 @@
|
||||
../../images/
|
||||
@@ -1 +0,0 @@
|
||||
../../modules/
|
||||