<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kiali – Architecture and Terms</title>
    <link>https://v2-24.kiali.io/docs/architecture/</link>
    <description>Recent content in Architecture and Terms on Kiali</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="https://v2-24.kiali.io/docs/architecture/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Architecture</title>
      <link>https://v2-24.kiali.io/docs/architecture/architecture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/architecture/architecture/</guid>
      <description>
        
        
        &lt;h2 id=&#34;kiali-architecture&#34;&gt;Kiali architecture&lt;/h2&gt;
&lt;p&gt;Kiali is composed of two components: a back-end application running in the
container application platform, and a user-facing front-end application.
Kiali depends on external services and components provided by the
container application platform and Istio.&lt;/p&gt;
&lt;p&gt;The following diagram illustrates the components involved in Kiali and its
interactions:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/architecture/arch.png&#34; alt=&#34;Kiali architecture&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;kiali-back-end&#34;&gt;Kiali back-end&lt;/h3&gt;
&lt;p&gt;The back-end is the application that runs in the container application platform.
It&amp;rsquo;s written in &lt;a href=&#34;http://golang.org/&#34;&gt;Go&lt;/a&gt;. The code can be found at
&lt;a href=&#34;https://github.com/kiali/kiali&#34;&gt;kiali/kiali GitHub repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is the component that communicates with Istio parts, retrieves and
processes data, and exposes this data to the front-end.&lt;/p&gt;
&lt;p&gt;The back-end doesn&amp;rsquo;t need storage. The back-end configuration is managed
via the Kiali CR when Kiali is installed via the Kiali operator, or via
a configmap when installed via Helm.&lt;/p&gt;
&lt;h3 id=&#34;kiali-front-end&#34;&gt;Kiali front-end&lt;/h3&gt;
&lt;p&gt;The front-end is a single page web application, built using Patternfly,
React, Typescript and Redux. The code can be found at
&lt;a href=&#34;https://github.com/kiali/kiali/tree/master/frontend&#34;&gt;kiali/kiali frontend folder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In a standard deployment, the back-end serves the front-end. Then, the front-end
queries the Kiali back-end in order to get data and present it to the user.&lt;/p&gt;
&lt;p&gt;There are limited options for personalization, the front-end is mainly
stateless. Some data may be persisted, such as session credentials, but this
data is stored in the browser and won&amp;rsquo;t be available in other browsers nor
other devices.&lt;/p&gt;
&lt;h2 id=&#34;istio-service-mesh&#34;&gt;Istio Service Mesh&lt;/h2&gt;
&lt;p&gt;Kiali is a console for Istio, and as such, Istio is a requirement.
It provides and controls the service mesh. Kiali and Istio are installed
separately.&lt;/p&gt;
&lt;p&gt;Kiali needs to retrieve Istio data and configurations, which are exposed
through Prometheus, the Kubernetes API, and istiod. For environments where
istiod is inaccessible, Kiali&amp;rsquo;s communication with istiod &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/no-istiod/&#34;&gt;can be disabled&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;prometheus&#34;&gt;Prometheus&lt;/h2&gt;
&lt;p&gt;Prometheus is an Istio dependency. When Istio telemetry is enabled, metrics
data is stored in Prometheus. Kiali uses the data stored in Prometheus to
figure out the mesh topology, show metrics, calculate health, show possible
problems, etc.&lt;/p&gt;
&lt;p&gt;Kiali communicates directly with Prometheus and assumes the metrics used by
Istio Telemetery. It&amp;rsquo;s a hard dependency for Kiali, and many Kiali features
will not work without it.&lt;/p&gt;
&lt;p&gt;Currently, Kiali relies on &lt;a href=&#34;https://istio.io/latest/docs/reference/config/metrics/&#34;&gt;Istio&amp;rsquo;s default metrics&lt;/a&gt;
set. Make sure that these default metrics are always in place.
Some metric customization is possible as long as the Kiali requirements are
still met.  For the current list of required metrics see
&lt;a href=&#34;https://v2-24.kiali.io/docs/faq/general/&#34;&gt;this FAQ entry&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;kubernetes-api&#34;&gt;Kubernetes API&lt;/h2&gt;
&lt;p&gt;Kiali uses the API of the container application platform in order
to fetch and resolve service mesh configurations.&lt;/p&gt;
&lt;p&gt;Container application platforms where Kiali is known to work are
&lt;a href=&#34;https://www.okd.io&#34;&gt;OKD&lt;/a&gt; and &lt;a href=&#34;http://kubernetes.io&#34;&gt;Kubernetes&lt;/a&gt;. Kiali should also
work on the derivatives of these platforms.&lt;/p&gt;
&lt;p&gt;Kiali queries the Kubernetes API to retrieve, for example, definitions for
namespaces, services, deployments, pods, and other entities. Kiali also makes
queries to resolve relationships between the different cluster entities.&lt;/p&gt;
&lt;p&gt;The Kubernetes API is also queried to retrieve Istio configurations like virtual
services, destination rules, route rules, gateways, and quotas.&lt;/p&gt;
&lt;h2 id=&#34;jaeger&#34;&gt;Jaeger&lt;/h2&gt;
&lt;p&gt;Jaeger is optional. When available, Kiali will be able to direct the user to
Jaeger&amp;rsquo;s tracing data. If you need this feature, make sure Kiali is
&lt;a href=&#34;https://v2-24.kiali.io/docs/features/tracing/&#34;&gt;properly configured for Jaeger
integration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tracing data will be available only if
&lt;a href=&#34;https://istio.io/docs/tasks/telemetry/distributed-tracing/&#34;&gt;Istio&amp;rsquo;s distributed tracing&lt;/a&gt; is enabled.&lt;/p&gt;
&lt;p&gt;As an alternative, &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/tracing/tempo&#34;&gt;Grafana Tempo&lt;/a&gt; can be used.&lt;/p&gt;
&lt;h2 id=&#34;grafana&#34;&gt;Grafana&lt;/h2&gt;
&lt;p&gt;Grafana is optional. When available, the metrics pages of Kiali will show a
link to direct the user to the same metric in Grafana. If you need this
feature, make sure Kiali is &lt;a href=&#34;https://github.com/kiali/kiali#grafana&#34;&gt;properly configured for Grafana integration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Kiali has basic metric capabilities. It can show the default Istio metrics for
workloads, apps and services. It allows to apply some groupings to the provided
metrics and fetch metrics for different time ranges. However, Kiali doesn&amp;rsquo;t
allow to customize the views nor customize the Prometheus queries. If you need
these capabilities, you&amp;rsquo;ll want to install Grafana. Follow the Istio
documentation to install Grafana if you need it.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Terminology</title>
      <link>https://v2-24.kiali.io/docs/architecture/terminology/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/architecture/terminology/</guid>
      <description>
        
        
        
      </description>
    </item>
    
  </channel>
</rss>
