Integrações com Open Service Mesh no Serviço Kubernetes do Azure (AKS)
O complemento Open Service Mesh (OSM) integra-se com recursos fornecidos pelo Azure e alguns projetos de código aberto.
Nota
Com a desativação do Open Service Mesh (OSM) pela Cloud Native Computing Foundation (CNCF), recomendamos identificar suas configurações OSM e migrá-las para uma configuração Istio equivalente. Para obter informações sobre como migrar do OSM para o Istio, consulte Diretrizes de migração para configurações do Open Service Mesh (OSM) para o Istio.
Importante
As integrações com projetos open source não são abrangidas pela Política de suporte do AKS.
Entrada
A entrada permite que o tráfego externo à malha seja encaminhado para serviços dentro da malha. Com o OSM, você pode configurar a maioria das soluções de entrada para trabalhar com sua malha, mas o OSM funciona melhor com uma das seguintes soluções:
Nota
No momento, o Azure Gateway Ingress Controller (AGIC) só funciona para back-ends HTTP. Se você configurar o OSM para usar o AGIC, o AGIC não será usado para outros back-ends, como HTTPS e mTLS.
Usar o Controlador de Ingresso do Gateway do Azure (AGIC) com o complemento OSM para entrada HTTP
Importante
Não é possível configurar o Azure Gateway Ingress Controller (AGIC) para entrada HTTPS.
Criar um namespace e implantar o serviço de aplicativo
Instalação do controlador de entrada AGIC.
Crie um namespace para o serviço de aplicativo usando o
kubectl create ns
comando.kubectl create ns httpbin
Adicione o namespace à malha usando o
osm namespace add
comando OSM CLI.osm namespace add httpbin
Implante o serviço de aplicativo no namespace usando o
kubectl apply
comando.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
Verifique se os pods estão em funcionamento e injete o sidecar do enviado usando o
kubectl get pods
comando.kubectl get pods -n httpbin
Sua saída deve ser semelhante à saída de exemplo a seguir:
NAME READY STATUS RESTARTS AGE httpbin-7c6464475-9wrr8 2/2 Running 0 6d20h
Liste os detalhes do serviço usando o
kubectl get svc
comando.kubectl get svc -n httpbin
Sua saída deve ser semelhante à saída de exemplo a seguir:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE httpbin ClusterIP 10.0.92.135 <none> 14001/TCP 6d20h
Implantar as configurações de entrada e verificar o acesso ao serviço de aplicativo
Implante o seguinte
Ingress
eIngressBackend
as configurações para permitir que clientes externos acessem ohttpbin
serviço na porta14001
usando okubectl apply
comando.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
Verifique se o
Ingress
objeto foi implantado com êxito usando okubectl get ingress
comando e anote o endereço IP externo.kubectl get ingress -n httpbin
Sua saída deve ser semelhante à saída de exemplo a seguir:
NAME CLASS HOSTS ADDRESS PORTS AGE httpbin <none> * 20.85.173.179 80 6d20h
Verifique se o objeto foi implantado
IngressBackend
com êxito usando okubectl get ingressbackend
comando.kubectl get ingressbackend -n httpbin
Sua saída deve ser semelhante à saída de exemplo a seguir:
NAME STATUS httpbin committed
Verifique se você pode acessar o
httpbin
serviço usando o endereço IP externo do serviço de entrada e o comando a seguircurl
.curl -sI http://<external-ip>/get
Confirme que recebeu uma resposta com
status 200
.
Observabilidade de métricas
A observabilidade de métricas permite que você visualize as métricas de sua malha e as implantações em sua malha. Com o OSM, você pode usar o Prometheus e o Grafana para observabilidade de métricas, mas essas integrações não são cobertas pela política de suporte do AKS.
Você também pode integrar o OSM ao Azure Monitor.
Antes de habilitar as métricas em sua malha para integração com o Azure Monitor, verifique se você tem os seguintes pré-requisitos:
- Habilite o Azure Monitor em seu cluster.
- Habilite o complemento OSM para seu cluster AKS.
- Integre seus namespaces de aplicativo à malha.
Habilite métricas para um namespace na malha usando o
osm metrics enable
comando.osm metrics enable --namespace myappnamespace
Crie um ConfigMap no namespace que permite que o
kube-system
Azure Monitor monitore seus namespaces. Por exemplo, crie ummonitor-configmap.yaml
com o seguinte conteúdo para monitorar omyappnamespace
: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
Aplique o ConfigMap usando o
kubectl apply
comando.kubectl apply -f monitor-configmap.yaml
Navegue até o portal do Azure e selecione seu cluster AKS.
Em Monitoramento, selecione Logs.
Na seção Monitoramento, consulte a
InsightsMetrics
tabela para exibir métricas nos namespaces habilitados. Por exemplo, a consulta a seguir mostra as métricas do enviado para o namespace padrão :InsightsMetrics | where Name contains "envoy" | extend t=parse_json(Tags) | where t.namespace == "default"
Ferramentas de automação e desenvolvimento
O OSM pode se integrar a determinados projetos de automação e ferramentas de desenvolvedor para ajudar operadores e desenvolvedores a criar e liberar aplicativos. Por exemplo, o OSM integra-se com o Flagger para entrega progressiva e o Dapr para criar aplicativos. As integrações OSM com Flagger e Dapr não são cobertas pela política de suporte do AKS.
Autorização externa
A autorização externa permite descarregar a autorização de solicitações HTTP para um serviço externo. O OSM pode usar a autorização externa integrando-se com o Open Policy Agent (OPA), mas essa integração não é coberta pela política de suporte do AKS.
Gestão de certificados
O OSM tem vários tipos de certificados que usa para operar em seu cluster AKS. O OSM inclui seu próprio gerenciador de certificados chamado Tresor, que é usado por padrão. Como alternativa, o OSM permite que você se integre ao Hashicorp Vault e ao cert-manager, mas essas integrações não são cobertas pela política de suporte do AKS.
Próximos passos
Este artigo abordou as integrações do complemento Open Service Mesh (OSM) com recursos fornecidos pelo Azure e alguns projetos de código aberto. Para saber mais sobre o OSM, consulte Sobre o OSM no AKS.
Azure Kubernetes Service