Suporte à implantação do Docker Compose no Azure Service Fabric
O Docker usa o arquivo docker-compose.yml para definir aplicativos de vários contêineres. Para tornar mais fácil para os clientes familiarizados com o Docker orquestrar aplicativos de contêiner existentes no Azure Service Fabric, incluímos suporte de visualização para implantação do Docker Compose nativamente na plataforma. O Service Fabric pode aceitar arquivos versão docker-compose.yml
3 e posterior.
Como esse suporte está em visualização, apenas um subconjunto de diretivas Compose é suportado.
Para usar essa visualização, crie seu cluster com a versão 5.7 ou superior do tempo de execução do Service Fabric por meio do portal do Azure junto com o SDK correspondente.
Nota
Esta funcionalidade está em pré-visualização e não é suportada na produção. Os exemplos abaixo são baseados no tempo de execução versão 6.0 e SDK versão 2.8.
Implantar um arquivo de composição do Docker no Service Fabric
Os comandos a seguir criam um aplicativo do Service Fabric (chamado fabric:/TestContainerApp
), que você pode monitorar e gerenciar como qualquer outro aplicativo do Service Fabric. Você pode usar o nome do aplicativo especificado para consultas de integridade.
O Service Fabric reconhece "DeploymentName" como o identificador da implantação Compor.
Utilizar o PowerShell
Crie uma implantação do Service Fabric Compose a partir de um arquivo docker-compose.yml executando o seguinte comando no PowerShell:
New-ServiceFabricComposeDeployment -DeploymentName TestContainerApp -Compose docker-compose.yml [-RegistryUserName <>] [-RegistryPassword <>] [-PasswordEncrypted]
RegistryUserName
e RegistryPassword
consulte o nome de usuário e a senha do registro do contêiner. Depois de concluir a implantação, você pode verificar seu status usando o seguinte comando:
Get-ServiceFabricComposeDeploymentStatus -DeploymentName TestContainerApp
Para excluir a implantação do Compose por meio do PowerShell, use o seguinte comando:
Remove-ServiceFabricComposeDeployment -DeploymentName TestContainerApp
Para iniciar uma atualização de implantação do Compose por meio do PowerShell, use o seguinte comando:
Start-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp -Compose docker-compose-v2.yml -Monitored -FailureAction Rollback
Para reverter a atualização de implantação do Compose por meio do PowerShell, use o seguinte comando:
Start-ServiceFabricComposeDeploymentRollback -DeploymentName TestContainerApp
Depois que a atualização for aceita, o progresso da atualização poderá ser rastreado usando o seguinte comando:
Get-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp
Usar a CLI do Azure Service Fabric (sfctl)
Como alternativa, você pode usar o seguinte comando da CLI do Service Fabric:
sfctl compose create --deployment-name TestContainerApp --file-path docker-compose.yml [ [ --user --encrypted-pass ] | [ --user --has-pass ] ] [ --timeout ]
Depois de criar a implantação, você pode verificar seu status usando o seguinte comando:
sfctl compose status --deployment-name TestContainerApp [ --timeout ]
Para excluir a implantação Compor, use o seguinte comando:
sfctl compose remove --deployment-name TestContainerApp [ --timeout ]
Para iniciar uma atualização de implantação do Compose, use o seguinte comando:
sfctl compose upgrade --deployment-name TestContainerApp --file-path docker-compose-v2.yml [ [ --user --encrypted-pass ] | [ --user --has-pass ] ] [--upgrade-mode Monitored] [--failure-action Rollback] [ --timeout ]
Para reverter a atualização de implantação do Compose, use o seguinte comando:
sfctl compose upgrade-rollback --deployment-name TestContainerApp [ --timeout ]
Depois que a atualização for aceita, o progresso da atualização poderá ser rastreado usando o seguinte comando:
sfctl compose upgrade-status --deployment-name TestContainerApp
Diretivas Compose suportadas
Esta pré-visualização suporta um subconjunto das opções de configuração do formato Compose versão 3, incluindo as seguintes primitivas:
- Serviços > Implantar > réplicas
- Serviços > Implantar > restrições de posicionamento >
- Serviços > Implantar > limites de recursos >
- -CPU-Ações
- -memória
- -troca de memória
- Comandos de Serviços >
- Ambiente de Serviços >
- Portos de Serviços >
- Imagem de Serviços >
- Isolamento de serviços > (apenas para Windows)
- Driver de registro de > serviços >
- Opções de driver > de registro de > serviços >
- Volume & Implantar > Volume
Configure o cluster para impor limites de recursos, conforme descrito em Governança de recursos do Service Fabric. Todas as outras diretivas Docker Compose não são suportadas para esta visualização.
Secção Portos
Especifique o protocolo http ou https na seção Portas que será usado pelo ouvinte do serviço Service Fabric. Isso garantirá que o protocolo de ponto de extremidade seja publicado corretamente com o serviço de nomenclatura para permitir que o proxy reverso encaminhe as solicitações:
- Para rotear para serviços de composição não seguros do Service Fabric, especifique /http. Por exemplo, - "80:80/http".
- Para encaminhar para serviços seguros do Service Fabric Compose, especifique /https. Por exemplo, - "443:443/https".
Nota
A sintaxe da seção Portas /http e /https é específica do Service Fabric para registrar a URL de ouvinte correta do Service Fabric. Se a sintaxe do arquivo de composição do Docker for validada programaticamente, isso poderá causar um erro de validação.
Computação ServiceDnsName
Se o nome de serviço especificado em um arquivo Compose for um nome de domínio totalmente qualificado (ou seja, ele contém um ponto [.]), o nome DNS registrado pelo Service Fabric será <ServiceName>
(incluindo o ponto). Caso contrário, cada segmento de caminho no nome do aplicativo se torna um rótulo de domínio no nome DNS do serviço, com o primeiro segmento de caminho se tornando o rótulo de domínio de nível superior.
Por exemplo, se o nome do aplicativo especificado for fabric:/SampleApp/MyComposeApp
, <ServiceName>.MyComposeApp.SampleApp
seria o nome DNS registrado.
Compor implantação (definição de instância) versus modelo de aplicativo do Service Fabric (definição de tipo)
Um arquivo docker-compose.yml descreve um conjunto implantável de contêineres, incluindo suas propriedades e configurações. Por exemplo, o arquivo pode conter variáveis de ambiente e portas. Você também pode especificar parâmetros de implantação, como restrições de posicionamento, limites de recursos e nomes DNS, no arquivo docker-compose.yml.
O modelo de aplicativo do Service Fabric usa tipos de serviço e tipos de aplicativo, onde você pode ter muitas instâncias de aplicativo do mesmo tipo. Por exemplo, você pode ter uma instância de aplicativo por cliente. Esse modelo baseado em tipo suporta várias versões do mesmo tipo de aplicativo registrado com o tempo de execução.
Por exemplo, o cliente A pode ter um aplicativo instanciado com o tipo 1.0 de AppTypeA, e o cliente B pode ter outro aplicativo instanciado com o mesmo tipo e versão. Você define os tipos de aplicativo nos manifestos do aplicativo e especifica o nome do aplicativo e os parâmetros de implantação ao criar o aplicativo.
Embora esse modelo ofereça flexibilidade, também estamos planejando oferecer suporte a um modelo de implantação mais simples e baseado em instância, onde os tipos estão implícitos no arquivo de manifesto. Neste modelo, cada aplicação obtém o seu próprio manifesto independente. Estamos visualizando esse esforço adicionando suporte para docker-compose.yml, que é um formato de implantação baseado em instância.
Próximos passos
- Leia sobre o modelo de aplicativo do Service Fabric
- Introdução à CLI do Service Fabric