[Docs] Adding context to Istio installation. (#8248)

pull/8250/head
J Stickler 2 years ago committed by GitHub
parent d2281a7b6e
commit 6a473a8407
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      docs/sources/fundamentals/architecture/rings/_index.md
  2. 8
      docs/sources/installation/helm/reference.md
  3. 29
      docs/sources/installation/istio.md
  4. 8
      production/helm/loki/values.yaml

@ -32,7 +32,7 @@ These components need to be connected into a hash ring:
These components can optionally be connected into a hash ring:
- index gateway
In an architecture that has three distributors and three ingestors defined,
In an architecture that has three distributors and three ingesters defined,
the hash rings for these components connect the instances of same-type components.
![distributor and ingester rings](./ring-overview.png)

@ -213,7 +213,7 @@ null
<tr>
<td>backend.serviceLabels</td>
<td>object</td>
<td>Labels for ingestor service</td>
<td>Labels for ingester service</td>
<td><pre lang="json">
{}
</pre>
@ -231,7 +231,7 @@ null
<tr>
<td>backend.terminationGracePeriodSeconds</td>
<td>int</td>
<td>Grace period to allow the backend to shutdown before it is killed. Especially for the ingestor, this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown.</td>
<td>Grace period to allow the backend to shutdown before it is killed. Especially for the ingester, this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown.</td>
<td><pre lang="json">
300
</pre>
@ -3683,7 +3683,7 @@ null
<tr>
<td>write.serviceLabels</td>
<td>object</td>
<td>Labels for ingestor service</td>
<td>Labels for ingester service</td>
<td><pre lang="json">
{}
</pre>
@ -3701,7 +3701,7 @@ null
<tr>
<td>write.terminationGracePeriodSeconds</td>
<td>int</td>
<td>Grace period to allow the write to shutdown before it is killed. Especially for the ingestor, this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown.</td>
<td>Grace period to allow the write to shutdown before it is killed. Especially for the ingester, this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown.</td>
<td><pre lang="json">
300
</pre>

@ -1,11 +1,11 @@
---
title: Installation instructions for Istio
title: Installing on Istio
description: Installation instructions for Istio
weight: 50
---
# Installation instructions for Istio
# Installing on Istio
The ingestor, querier, etc. might start, but if those changes are not made, you will see logs like
When installing Loki on Istio service mesh you must complete some additional steps. Without these steps, the ingester, querier, etc. might start, but you will see logs like the following:
```
loki level=debug ts=2021-11-24T11:33:37.352544925Z caller=broadcast.go:48 msg="Invalidating forwarded broadcast" key=collectors/distributor version=123 oldVersion=122 content=[loki-distributor-59c4896444-t9t6g[] oldContent=[loki-distributor-59c4896444-t9t6g[]
@ -19,12 +19,13 @@ If you try to add `loki` to `Grafana` data sources, you will see logs like (`emp
loki level=warn ts=2021-11-24T08:02:42.08262122Z caller=logging.go:72 traceID=3fc821042d8ada1a orgID=fake msg="GET /loki/api/v1/labels?end=1637740962079859431&start=1637740361925000000 (500) 97.4µs Response: \"empty ring\\n\" ws: false; X-Scope-Orgid: fake; uber-trace-id: 3fc821042d8ada1a:1feed8872deea75c:1180f95a8235bb6c:0; "
```
When istio-injection is enabled on the namespace running Loki, there are few changes needed. One of the main changes is around the `Service` `appProtocols`.
Given that istio will not allow a pod to resolve another pod using an ip address, the pods part of the `memberlist` will fail.
When you enable istio-injection on the namespace where Loki is running, you need to also modify the configuration for the Loki services. Given that Istio will not allow a pod to resolve another mod using an IP address, you must also modify the `memberlist` service.
## Changes Required
## Required changes
### Query Frontend Service
### Query frontend service
Make the following modifications to the file for Loki's Query Frontend service.
1. Change the name of `grpc` port to `grpclb`. This is used by the grpc load balancing strategy which relies on SRV records. Otherwise the `querier` will not be able to reach the `query-frontend`. See https://github.com/grafana/loki/blob/0116aa61c86fa983ddcbbd5e30a2141d2e89081a/production/ksonnet/loki/common.libsonnet#L19
and
@ -62,6 +63,8 @@ spec:
### Querier service
Make the following modifications to the file for Loki's Querier service.
Set the `appProtocol` of the `grpc` service to `tcp`
```
@ -94,7 +97,9 @@ spec:
```
### Ingester Service and Ingester Headless Service
### Ingester service and Ingester headless service
Make the following modifications to the file for Loki's Query Ingester and Ingester Headless service.
Set the `appProtocol` of the `grpc` port to `tcp`
@ -126,7 +131,9 @@ spec:
type: ClusterIP
```
### Distributor Service
### Distributor service
Make the following modifications to the file for Loki's Distributor service.
Set the `appProtocol` of the `grpc` port to `tcp`
@ -158,7 +165,9 @@ spec:
```
## Memberlist Service
### Memberlist service
Make the following modifications to the file for the Memberlist service.
Set the `appProtocol` of the `http` port to `tcp`

@ -662,7 +662,7 @@ write:
podLabels: {}
# -- Additional selector labels for each `write` pod
selectorLabels: {}
# -- Labels for ingestor service
# -- Labels for ingester service
serviceLabels: {}
# -- Comma-separated list of Loki modules to load for the write
targetModule: "write"
@ -682,7 +682,7 @@ write:
extraVolumes: []
# -- Resource requests and limits for the write
resources: {}
# -- Grace period to allow the write to shutdown before it is killed. Especially for the ingestor,
# -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
# this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
# all data and to successfully leave the member ring on shutdown.
terminationGracePeriodSeconds: 300
@ -867,7 +867,7 @@ backend:
podAnnotations: {}
# -- Additional selector labels for each `backend` pod
selectorLabels: {}
# -- Labels for ingestor service
# -- Labels for ingester service
serviceLabels: {}
# -- Comma-separated list of Loki modules to load for the read
targetModule: "backend"
@ -885,7 +885,7 @@ backend:
extraVolumes: []
# -- Resource requests and limits for the backend
resources: {}
# -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingestor,
# -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
# this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
# all data and to successfully leave the member ring on shutdown.
terminationGracePeriodSeconds: 300

Loading…
Cancel
Save