Skip to content

Istio💣

Overview💣

Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio’s control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes.

graph LR
  subgraph "Istio"
    dataplane("Data Plane<br/>AKA Gateway")
    controlplane{{"Control Plane"}} --> dataplane
    igw("Ingress Gateway") --"http 8080<br/>https 8443<br/>istiod 15012<br/>status 15021<br/>tls 15443"--> dataplane
  end

  ig("Ingress") --> igw

  subgraph "Monitoring"
    svcmonitor("Service Monitor") --> controlplane
    Prometheus --> svcmonitor("Service Monitor")
  end

  subgraph "App"
    dataplane --"app.bigbang.dev"<br/>port redirects--> appvs{{"Virtual Service"}} --> appsvc{{"App Service"}}
  end

  subgraph "Logging"
    controlplane --> fluent(Fluentbit) --> logging-ek-es-http
    logging-ek-es-http{{Elastic Service<br />logging-ek-es-http}} --> elastic[(Elastic Storage)]
  end

Big Bang Touchpoints💣

Licensing💣

Istio is an open source tool that utilizes an Apache-2.0 License.

Storage💣

Aside from the packages that it can integrate with, Istio provides no storage requirements.

High Availability💣

By default, Istio is configured with 1 istiod replica, but it can be configured in the Big Bang values to use horizontal pod autoscaling:

istio:
  values:
    istiod:
      replicaCount: 1
      hpaSpec:
        minReplicas: 1
        maxReplicas: 3

Likewise, the ingress gateway replicas can be specified and extra ingress gateways can be configured:

istio:
  values:
    ingressGateway:
      minReplicas: 1
      maxReplicas: 5
    extraIngressGateways:
    # ...

UI💣

Big Bang can be configured to deploy Kiali (a management console that provides dashboards, observability, and other robust capabilities) and Jaeger (an end-to-end distributed tracing system), both of which include UI features to help you visualize your Istio mesh. To enable Kialia and Jaeger, simply update the Big Bang values.yaml:

istio:
  enabled: true
jaeger:
  enabled: true
kiali:
  enabled: true

Logging💣

Within Big Bang, logs are captured by fluentbit and shipped to elastic by default.

Monitoring💣

Monitoring can be enabled to automatically capture metrics for Istio when monitoring.enabled is set to true in the Big Bang values.yaml. Since Istio 1.5, standard metrics are directly exported by the Envoy proxy. For a list of metrics, see Istio Standard Metrics and Istio Observability.

Grafana (part of the monitoring packages) is a standalone component of Big Bang that can provide dashboards to show monitoring data. For more information, see Big Bang’s Grafana docs and Visualizing Metrics with Grafana.

Healthchecks💣

There are standard readiness probes built into the envoy sidecars and istio containers. See here for more info.

You can get events in an istio-injected namespace to see if your sidecars are unhealthy or having issues. To check the health/status of the istio installation, run kubectl get istiooperators -n istio-system.

Dependant Packages💣

  • istio-operator

Last update: 2023-04-21 by Ryan Thompson