Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Надстройка Open Service Mesh (OSM) интегрируется с функциями, предоставляемыми Azure и некоторыми проектами с открытым кодом.
Примечание.
С выходом Open Service Mesh (OSM) из эксплуатации, объявленным Cloud Native Computing Foundation (CNCF), мы рекомендуем определить ваши конфигурации OSM и перенести их в эквивалентную конфигурацию Istio. Для получения информации о миграции с OSM на Istio см. руководство по миграции конфигураций Open Service Mesh (OSM) в Istio.
Внимание
Политика поддержки AKS не распространяется на интеграцию с проектами с открытым кодом.
Входящий трафик
Ingress позволяет маршрутизировать трафик, внешний по отношению к сети, к службам внутри сети. С помощью OSM можно настроить большинство решений для обработки входящего трафика, чтобы они работали с сеткой службы, но OSM лучше всего работает с одним из следующих решений:
Примечание.
В настоящее время контроллер входящего трафика шлюза Azure (AGIC) работает только для серверных служб HTTP. Если вы настроите OSM для использования AGIC, agIC не будет использоваться для других серверных компонентов, таких как HTTPS и mTLS.
Использование контроллера входящего трафика шлюза Azure (AGIC) с надстройкой OSM для входящего трафика HTTP
Внимание
Невозможно настроить контроллер входящего трафика шлюза Azure (AGIC) для входящего трафика HTTPS.
Создание пространства имен и развертывание службы приложений
Установка контроллера входящего трафика AGIC.
Создайте пространство имен для службы приложений с помощью
kubectl create ns
команды.kubectl create ns httpbin
Добавьте пространство имен в сетку с помощью
osm namespace add
команды CLI OSM.osm namespace add httpbin
Разверните службу приложения в пространстве имен, используя команду
kubectl apply
.export RELEASE_BRANCH=release-v1.2 kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm-docs/$RELEASE_BRANCH/manifests/samples/httpbin/httpbin.yaml -n httpbin
Убедитесь, что поды запущены и работают, и в них внедрен побочный контейнер Envoy с помощью команды
kubectl get pods
.kubectl get pods -n httpbin
Выходные данные должны выглядеть примерно так:
NAME READY STATUS RESTARTS AGE httpbin-7c6464475-9wrr8 2/2 Running 0 6d20h
Перечислите сведения о службе с помощью команды
kubectl get svc
.kubectl get svc -n httpbin
Выходные данные должны выглядеть примерно так:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE httpbin ClusterIP 10.0.92.135 <none> 14001/TCP 6d20h
Развертывание конфигураций входящего трафика и проверка доступа к службе приложений
Разверните следующие
Ingress
иIngressBackend
конфигурации, чтобы разрешить внешним клиентам доступ кhttpbin
службе через порт14001
с помощьюkubectl apply
команды.kubectl apply -f <<EOF apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: httpbin namespace: httpbin annotations: kubernetes.io/ingress.class: azure/application-gateway spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: httpbin port: number: 14001 --- kind: IngressBackend apiVersion: policy.openservicemesh.io/v1alpha1 metadata: name: httpbin namespace: httpbin spec: backends: - name: httpbin port: number: 14001 # targetPort of httpbin service protocol: http sources: - kind: IPRange name: 10.0.0.0/8 EOF
Убедитесь, что объект
Ingress
успешно развернут, используя командуkubectl get ingress
, и запишите внешний IP-адрес.kubectl get ingress -n httpbin
Выходные данные должны выглядеть примерно так:
NAME CLASS HOSTS ADDRESS PORTS AGE httpbin <none> * 20.85.173.179 80 6d20h
Убедитесь, что
IngressBackend
объект успешно развернут с помощьюkubectl get ingressbackend
команды.kubectl get ingressbackend -n httpbin
Выходные данные должны выглядеть примерно так:
NAME STATUS httpbin committed
Убедитесь, что вы можете получить доступ к
httpbin
службе с помощью внешнего IP-адреса службы входящего трафика и следующейcurl
команды.curl -sI http://<external-ip>/get
Подтвердите получение ответа с помощью
status 200
.
Наблюдаемость метрик
Возможность наблюдения за метриками позволяет вам просматривать метрики вашей сетки и развертывания в ней. OSM поддерживает использование Prometheus и Grafana для обеспечения наблюдаемости метрик, но политика поддержки AKS не распространяется на эти интеграции.
OSM можно также интегрировать с Azure Monitor.
Прежде чем включить метрики в сетке для интеграции с Azure Monitor, убедитесь, что у вас есть следующие предварительные требования:
- Включите Azure Monitor в кластере.
- Включите надстройку OSM для вашего кластера AKS.
- Подключите пространства имен вашего приложения к сетке.
Включите метрики для пространства имен в сетке с помощью этой команды
osm metrics enable
.osm metrics enable --namespace myappnamespace
Создайте ConfigMap в
kube-system
пространстве имен, которая позволяет Azure Monitor отслеживать ваши пространства имен. Например, создайтеmonitor-configmap.yaml
с следующим содержимым, чтобы мониторитьmyappnamespace
:kind: ConfigMap apiVersion: v1 data: schema-version: v1 config-version: ver1 osm-metric-collection-configuration: |- # OSM metric collection settings [osm_metric_collection_configuration] [osm_metric_collection_configuration.settings] # Namespaces to monitor monitor_namespaces = ["myappnamespace"] metadata: name: container-azm-ms-osmconfig namespace: kube-system
Примените ConfigMap с помощью
kubectl apply
команды.kubectl apply -f monitor-configmap.yaml
Перейдите к портал Azure и выберите кластер AKS.
В разделе Мониторинг выберите Журналы.
В разделе "Мониторинг" запросите таблицу
InsightsMetrics
для ознакомления с метриками в активированных пространствах имен. Например, следующий запрос показывает метрики envoy для пространства имен по умолчанию :InsightsMetrics | where Name contains "envoy" | extend t=parse_json(Tags) | where t.namespace == "default"
Средства автоматизации и разработки
OSM можно интегрировать с некоторыми проектами автоматизации и инструментами разработчика, чтобы операторам и разработчикам было проще создавать и выпускать приложения. Например, OSM интегрируется с Flagger для поэтапной доставки и с Dapr для создания приложений. Интеграция OSM с Flagger и Dapr не охватывается политикой поддержки AKS.
Внешняя авторизация
Внешняя авторизация позволяет снизить нагрузку на процесс авторизации HTTP-запросов к внешней службе. OSM может использовать внешнюю авторизацию путем интеграции с Open Policy Agent (OPA), но на эту интеграцию не распространяется действие политики поддержки AKS.
Управление сертификатами
OSM использует несколько типов сертификатов при работе в кластере AKS. OSM имеет собственный диспетчер сертификатов под названием Tresor, который используется по умолчанию. В качестве альтернативы OSM позволяет настроить интеграцию с Hashicorp Vault и cert-manager, однако политика поддержки AKS не распространяется на эти интеграции.
Следующие шаги
В этой статье рассматриваются интеграции надстроек Open Service Mesh (OSM) с функциями, предоставляемыми Azure и некоторыми проектами с открытым исходным кодом. Дополнительные сведения об OSM см. в статье Об OSM в AKS.
Azure Kubernetes Service