Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Istio может создавать метрики, распределенные трассировки и журналы доступа для всех рабочих нагрузок в сетке. Надстройка сетки сетки на основе Istio для Служба Azure Kubernetes (AKS) предоставляет параметры настройки телеметрии с помощью общей конфигурации Сетки и API v1
телеметрии Istio для дополнительных редакций и более поздних asm-1-22
версий.
Примечание.
Хотя Istio MeshConfig также предоставляет варианты настройки телеметрии глобально в сетке, API телеметрии предлагает более детализированный контроль над параметрами телеметрии на основе каждой службы или для каждой рабочей нагрузки. Поскольку сообщество Istio продолжает инвестировать в API телеметрии, теперь это предпочтительный метод для конфигурации телеметрии. Мы рекомендуем перейти к API телеметрии для настройки сбора данных телеметрии в сетке.
Предварительные условия
- Вы должны быть на редакции
asm-1-22
или более поздней версии. Информацию о том, как выполнять обновления незначительных версий, см. в документации по обновлению надстройки Istio.
Настройка ресурсов телеметрии
В следующем примере показано, как включить ведение журналов доступа Envoy по всей сетке для надстройки Istio через API телеметрии, используя asm-1-22
(отрегулируйте редакцию по мере необходимости). Инструкции по другим настройкам API телеметрии для надстройки см. в разделе Область поддержки API телеметрии и в документации по Istio.
Развертывание примеров приложений
Пометить пространство имен для внедрения сайдкаров.
kubectl label ns default istio.io/rev=asm-1-22
sleep
Разверните приложение и задайте SOURCE_POD
переменную среды:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/sleep/sleep.yaml
export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})
Затем разверните httpbin
приложение:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml
Включить журналирование доступа Envoy с помощью API телеметрии Istio
Разверните следующий ресурс API телеметрии Istio v1
, чтобы включить ведение журнала доступа Envoy для всей сетевой структуры.
cat <<EOF | kubectl apply -n aks-istio-system -f -
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-logging-default
spec:
accessLogging:
- providers:
- name: envoy
EOF
Журналы тестового доступа
Отправка запроса в sleep
httpbin
:
kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418
Убедитесь, что журналы доступа отображаются для sleep
pod:
kubectl logs -l app=sleep -c istio-proxy
Должен появиться следующий результат:
[2024-08-13T00:31:47.690Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 12 11 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" outbound|8000||httpbin.default.svc.cluster.local 10.244.0.12:53336 10.0.112.220:8000 10.244.0.12:42360 - default
Теперь убедитесь, что журналы доступа отображаются для httpbin
pod:
kubectl logs -l app=httpbin -c istio-proxy
Должен появиться следующий результат:
[2024-08-13T00:31:47.696Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 2 1 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" inbound|8080|| 127.0.0.6:55401 10.244.0.13:8080 10.244.0.12:53336 outbound_.8000_._.httpbin.default.svc.cluster.local default
Область поддержки API телеметрии
Для надстройки сетевой Istio для AKS поля API телеметрии классифицируются как allowed
, supported
и blocked
значения. Дополнительные сведения о политике поддержки надстройки Istio для функций и конфигураций сетки см. в документе политики поддержки надстройки Istio.
Следующие конфигурации API телеметрии относятся allowed
к надстройке Istio или supported
для надстройки Istio. Любое поле, не включенное в эту таблицу, равно blocked
.
Поле API телеметрии | Поддерживается или разрешено | Примечания |
---|---|---|
accessLogging.match |
Поддерживается | - |
accessLogging.disabled |
Поддерживается | - |
accessLogging.providers |
Допустимо | Поддерживается поставщик журналов доступа по умолчанию envoy . Управляемый интерфейс для сбора журналов и запросов см. в статье Azure Monitor Container Insights Log Analytics. Сторонние или открытые решения для сбора и анализа журналов allowed , но не поддерживаются. |
metrics.overrides |
Поддерживается | - |
metrics.providers |
Допустимо | Сбор метрик с помощью Azure Monitor Managed Prometheus поддерживается. Сторонние или основанные на открытом коде решения для сбора метрик allowed не поддерживаются. |
tracing.* |
Допустимо | Все конфигурации трассировки allowed , но они не поддерживаются. |
Azure Kubernetes Service