istio
19 commands
19 shown
Установить Istio (demo профиль)
Установить Istio с демо-профилем конфигурации
istioctl install --set profile=demo -y
Включить инжект сайдкара
Включить автоматический инжект сайдкара Envoy для неймспейса
kubectl label namespace default istio-injection=enabled
Проверить статус прокси
Получить статус синхронизации всех Envoy-прокси в меше
istioctl proxy-status
Анализировать конфигурацию
Анализировать конфигурацию Istio на потенциальные проблемы
istioctl analyze
Просмотр конфигурации Envoy
Показать полную конфигурацию Envoy-прокси для деплоя
istioctl proxy-config all deploy/myapp
Маршрутизация трафика — VirtualService
Применить VirtualService для определения правил маршрутизации
kubectl apply -f virtualservice.yaml
Правила назначения — DestinationRule
Применить DestinationRule для балансировки нагрузки и circuit breaker
kubectl apply -f destinationrule.yaml
Включить mTLS (строгий)
Включить строгий mutual TLS для всех воркloadов в неймспейсе
kubectl apply -f - <<EOF
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default
namespace: default
spec:
mtls:
mode: STRICT
EOF
Инжект сайдкара вручную
Вручную инжектировать сайдкар Istio в манифест деплоя
istioctl kube-inject -f deployment.yaml | kubectl apply -f -
Дашборд (Kiali)
Открыть дашборд Kiali для сервисного меша в браузере
istioctl dashboard kiali
Дашборд (Jaeger)
Открыть дашборд Jaeger для распределённой трассировки
istioctl dashboard jaeger
Просмотр логов доступа
Просмотреть логи доступа Envoy из контейнера сайдкара
kubectl logs -l app=myapp -c istio-proxy | head -50
Инжект ошибок — задержка
Добавить искусственную задержку для тестирования отказоустойчивости
# In VirtualService spec.http[].fault.delay
Зеркалирование трафика
Зеркалировать трафик на теневой сервис для тестирования
# In VirtualService spec.http[].mirror
Удалить Istio
Полностью удалить Istio из кластера
istioctl uninstall --purge -y
Маршрутизация трафика — VirtualService
Роутинг 80% трафика на v1, 20% на v2 (канарейка)
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myapp
spec:
hosts:
- myapp
http:
- route:
- destination:
host: myapp
subset: v1
weight: 80
- destination:
host: myapp
subset: v2
weight: 20
EOF
Правила назначения — DestinationRule
Определить сабсеты и circuit breaker (outlier detection)
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: myapp
spec:
host: myapp
trafficPolicy:
outlierDetection:
consecutive5xxErrors: 5
interval: 10s
baseEjectionTime: 30s
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
EOF
Инжект ошибок — задержка
Добавить задержку 5s для 100% запросов для тестирования
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myapp
spec:
hosts:
- myapp
http:
- fault:
delay:
percentage:
value: 100
fixedDelay: 5s
route:
- destination:
host: myapp
EOF
Зеркалирование трафика
Зеркалировать 100% трафика на теневой сервис v2
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myapp
spec:
hosts:
- myapp
http:
- route:
- destination:
host: myapp
subset: v1
weight: 100
mirror:
host: myapp
subset: v2
mirrorPercentage:
value: 100
EOF
no commands match