Files
K3S/addons/istio/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

3.4 KiB
Raw Blame History

Istio + Kiali

Service mesh с mutual TLS, traffic management, observability. Kiali — веб-интерфейс для визуализации mesh-топологии.

Быстрый старт

# group_vars/all/addons.yml
addon_istio: true
kiali_enabled: true

kiali_ingress_enabled: true
kiali_ingress_host: "kiali.example.com"

Секрет в vault.yml:

vault_kiali_token: ""   # заполнишь после первой установки
make addon-istio

Параметры

Переменная Умолч. Описание
istio_mtls_mode STRICT STRICT | PERMISSIVE | DISABLE
istio_install_gateway true Istio Ingress Gateway (LoadBalancer)
kiali_enabled false Установить Kiali UI
kiali_ingress_enabled false Ingress для Kiali

Токен Kiali

При первой установке Ansible выводит токен в конце плейбука. Сохрани в vault:

make vault-edit
# vault_kiali_token: "eyJhbGci..."

Включить sidecar injection в namespace

kubectl label namespace my-app istio-injection=enabled

Или в манифесте Namespace:

apiVersion: v1
kind: Namespace
metadata:
  name: my-app
  labels:
    istio-injection: enabled

VirtualService — traffic routing

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-app
  namespace: my-app
spec:
  hosts:
    - myapp.local
  gateways:
    - istio-system/istio-ingressgateway
  http:
    - match:
        - uri:
            prefix: /api
      route:
        - destination:
            host: my-app-api
            port:
              number: 8080
    - route:
        - destination:
            host: my-app-frontend
            port:
              number: 80

Canary deployment

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-app
spec:
  hosts: [my-app]
  http:
    - route:
        - destination:
            host: my-app
            subset: v1
          weight: 90
        - destination:
            host: my-app
            subset: v2
          weight: 10
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-app
spec:
  host: my-app
  subsets:
    - name: v1
      labels:
        version: v1
    - name: v2
      labels:
        version: v2

Circuit breaker

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-app
spec:
  host: my-app
  trafficPolicy:
    outlierDetection:
      consecutive5xxErrors: 5
      interval: 30s
      baseEjectionTime: 30s

Интеграция с Prometheus + Grafana

kiali_prometheus_enabled: true
kiali_prometheus_url: "http://prometheus-operated.monitoring:9090"
kiali_grafana_enabled: true
kiali_grafana_url: "http://kube-prometheus-stack-grafana.monitoring:80"

Диагностика

istioctl proxy-status
istioctl analyze -n my-app
kubectl logs -n istio-system deployment/istiod -f

Официальные ресурсы