Skip to content

Installation

Objective

To explore troubleshooting and diagnostic commands associated with the installation of Istio.

Precheck

The precheck command helps ascertain that Istio can be installed or upgraded on the current Kubernetes cluster:

istioctl x precheck

Install Istio

Istio is often installed with the istioctl CLI in sandbox environments.

helm is typically the method preferred for QA, staging, and production environments.

Use the Istio CLI to install Istio with the default configuration profile, which deploys istiod and the Istio ingress gateway component:

istioctl install -f artifacts/install/trace-config.yaml

Above, we also reference an installation configuration that configures distributed tracing.

---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: default
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100.0
    extensionProviders:
    - name: zipkin
      zipkin:
        service: zipkin.istio-system.svc.cluster.local
        port: 9411

Is istio installed properly?

Given an environment with Istio installed, we can verify the installation with the verify-install command:

istioctl verify-install

What version of Istio am I running?

The version command provides version information for the CLI, the control plane, and the data plane (proxies):

istioctl version

Question

Part of the output from istioctl version is:

data plane version: 1.22.4 (1 proxies)

Can you explain what this means? What proxies are being referred to?

Access Logging

When using the default configuration profile, Envoy sidecars and gateways are not default-configured with access logging to standard output.

We can enable Envoy Access logging using Istio's Telemetry API.

Apply the following resource to your Kubernetes cluster:

kubectl apply -f artifacts/install/telemetry.yaml
---
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
  accessLogging:
  - providers:
    - name: envoy
  tracing:
  - providers:
    - name: zipkin
    randomSamplingPercentage: 100.00

Note that we also set the tracing provider to zipkin. More on that later.