Implantar o complemento Open Service Mesh usando o Bicep no Serviço Kubernetes do Azure (AKS)
Este artigo mostra como implantar o complemento Open Service Mesh (OSM) no Serviço Kubernetes do Azure (AKS) usando um modelo Bicep .
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
Com base na versão do Kubernetes que seu cluster está executando, o complemento OSM instala uma versão diferente do OSM.
Versão do Kubernetes | Versão do OSM instalada |
---|---|
1.24.0 ou superior | 1.2.5 |
Entre 1.23.5 e 1.24.0 | 1.1.3 |
Abaixo de 1.23.5 | 1.0.0 |
As versões mais antigas do OSM podem não estar disponíveis para instalação ou ser ativamente suportadas se a versão correspondente do AKS tiver chegado ao fim da vida útil. Você pode verificar o calendário de lançamento do Kubernetes do AKS para obter informações sobre as janelas de suporte da versão do AKS.
O Bicep é uma linguagem específica do domínio que usa sintaxe declarativa para implantar recursos do Azure. Você pode usar o Bicep em vez de criar modelos do Azure Resource Manager para implantar seus recursos do Azure de infraestrutura como código.
Antes de começar
Antes de começar, certifique-se de que tem os seguintes pré-requisitos:
- A CLI do Azure versão 2.20.0 ou posterior. Executar
az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). - Uma chave pública SSH usada para implantar o AKS. Para obter mais informações, consulte Criar chaves SSH usando a CLI do Azure.
- Código do Visual Studio com um terminal Bash.
- A extensão Visual Studio Code Bicep.
Instale o complemento OSM para um novo cluster AKS usando o Bicep
Para a implantação de um novo cluster AKS, habilite o complemento OSM na criação do cluster. As instruções a seguir usam um modelo Bicep genérico que implanta um cluster AKS usando discos efêmeros e a interface de rede de kubenet
contêiner e, em seguida, habilita o complemento OSM. Para cenários de implantação mais avançados, consulte O que é Bicep?
Criar um grupo de recursos
Crie um grupo de recursos usando o
az group create
comando.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Criar os principais e parâmetros arquivos Bicep
Crie um diretório para armazenar os arquivos de implantação do Bicep necessários. O exemplo a seguir cria um diretório chamado bicep-osm-aks-addon e altera o diretório:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Crie o arquivo principal e o arquivo de parâmetros.
touch osm.aks.bicep && touch osm.aks.parameters.json
Abra o arquivo osm.aks.bicep e copie no seguinte conteúdo:
// https://learn.microsoft.com/azure/aks/troubleshooting#what-naming-restrictions-are-enforced-for-aks-resources-and-parameters @minLength(3) @maxLength(63) @description('Provide a name for the AKS cluster. The only allowed characters are letters, numbers, dashes, and underscore. The first and last character must be a letter or a number.') param clusterName string @minLength(3) @maxLength(54) @description('Provide a name for the AKS dnsPrefix. Valid characters include alphanumeric values and hyphens (-). The dnsPrefix can\'t include special characters such as a period (.)') param clusterDNSPrefix string param k8Version string param sshPubKey string param location string param adminUsername string resource aksCluster 'Microsoft.ContainerService/managedClusters@2021-03-01' = { name: clusterName location: location identity: { type: 'SystemAssigned' } properties: { kubernetesVersion: k8Version dnsPrefix: clusterDNSPrefix enableRBAC: true agentPoolProfiles: [ { name: 'agentpool' count: 3 vmSize: 'Standard_DS2_v2' osDiskSizeGB: 30 osDiskType: 'Ephemeral' osType: 'Linux' mode: 'System' } ] linuxProfile: { adminUsername: adminUserName ssh: { publicKeys: [ { keyData: sshPubKey } ] } } addonProfiles: { openServiceMesh: { enabled: true config: {} } } } }
Abra o arquivo osm.aks.parameters.json e copie no conteúdo a seguir. Certifique-se de substituir os valores dos parâmetros de implantação por seus próprios valores.
Nota
O arquivo osm.aks.parameters.json é um arquivo de parâmetros de modelo de exemplo necessário para a implantação do Bicep. Atualize os parâmetros especificamente para seu ambiente de implantação. Os parâmetros para os quais você precisa adicionar valores incluem:
clusterName
,clusterDNSPrefix
,k8Version
,sshPubKey
,location
eadminUsername
. Para encontrar uma lista de versões suportadas do Kubernetes em sua região, use oaz aks get-versions --location <region>
comando.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "clusterName": { "value": "<YOUR CLUSTER NAME HERE>" }, "clusterDNSPrefix": { "value": "<YOUR CLUSTER DNS PREFIX HERE>" }, "k8Version": { "value": "<YOUR SUPPORTED KUBERNETES VERSION HERE>" }, "sshPubKey": { "value": "<YOUR SSH KEY HERE>" }, "location": { "value": "<YOUR AZURE REGION HERE>" }, "adminUsername": { "value": "<YOUR ADMIN USERNAME HERE>" } } }
Implantar os arquivos Bicep
Abra um terminal e autentique-se em sua conta do Azure para a CLI do Azure usando o
az login
comando.Implante os arquivos Bicep usando o
az deployment group create
comando.az deployment group create \ --name OSMBicepDeployment \ --resource-group osm-bicep-test \ --template-file osm.aks.bicep \ --parameters @osm.aks.parameters.json
Validar a instalação do complemento OSM
Consulte os perfis de complementos do cluster para verificar o estado ativado dos complementos instalados. O seguinte comando deve retornar
true
:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Obtenha o status do osm-controller usando os seguintes
kubectl
comandos.kubectl get deployments -n kube-system --selector app=osm-controller kubectl get pods -n kube-system --selector app=osm-controller kubectl get services -n kube-system --selector app=osm-controller
Acessar a configuração do complemento OSM
Você pode configurar o controlador OSM usando o recurso OSM MeshConfig e pode exibir as definições de configuração do controlador OSM usando a CLI do Azure.
Exiba as definições de configuração do controlador OSM usando o
kubectl get
comando.kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Aqui está um exemplo de saída de MeshConfig:
apiVersion: config.openservicemesh.io/v1alpha1 kind: MeshConfig metadata: creationTimestamp: "0000-00-00A00:00:00A" generation: 1 name: osm-mesh-config namespace: kube-system resourceVersion: "2494" uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31 spec: certificate: serviceCertValidityDuration: 24h featureFlags: enableEgressPolicy: true enableMulticlusterMode: false enableWASMStats: true observability: enableDebugServer: true osmLogLevel: info tracing: address: jaeger.osm-system.svc.cluster.local enable: false endpoint: /api/v2/spans port: 9411 sidecar: configResyncInterval: 0s enablePrivilegedInitContainer: false envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3 initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1 logLevel: error maxDataPlaneConnections: 0 resources: {} traffic: enableEgress: true enablePermissiveTrafficPolicyMode: true inboundExternalAuthorization: enable: false failureModeAllow: false statPrefix: inboundExtAuthz timeout: 1s useHTTPSIngress: false
Observe que
enablePermissiveTrafficPolicyMode
está configurado comotrue
. No OSM, o modo de política de tráfego permissivo ignora a aplicação da política de tráfego SMI . Nesse modo, o OSM descobre automaticamente os serviços que fazem parte da malha de serviços. Os serviços descobertos terão regras de política de tráfego programadas em cada sidecar proxy Envoy para permitir comunicações entre esses serviços.Aviso
Antes de continuar, verifique se o modo de política de tráfego permissivo está definido como
true
. Se não estiver, altere-o paratrue
usar o seguinte comando:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Clean up resources (Limpar recursos)
Quando você não precisar mais dos recursos do Azure, exclua o grupo de recursos de teste da implantação usando o
az group delete
comando.az group delete --name osm-bicep-test
Como alternativa, você pode desinstalar o complemento OSM e os recursos relacionados do cluster. Para obter mais informações, consulte Desinstalar o complemento Open Service Mesh do cluster AKS.
Próximos passos
Este artigo mostrou como instalar o complemento OSM em um cluster AKS e verificar se ele está instalado e em execução. Com o complemento OSM instalado em seu cluster, você pode implantar um aplicativo de exemplo ou integrar um aplicativo existente para trabalhar com sua malha OSM.
Azure Kubernetes Service