O Elastic Container Instance (ECI) integra-se perfeitamente ao Container Service for Kubernetes (ACK). Utilize um cluster ACK Serverless ou um cluster gerenciado pelo ACK para aproveitar as capacidades de runtime de contêineres do ECI. Este tópico demonstra como usar o ECI com um cluster ACK Serverless.
Antes de começar
Antes de iniciar, ative os serviços necessários e conceda as permissões adequadas:
Ative o Container Service for Kubernetes (ACK), atribua as funções padrão e ative os produtos de nuvem relacionados. Para mais informações, consulte Criar um cluster gerenciado pelo ACK.
Faça login no console do Elastic Container Instance e siga as instruções na tela para ativar o serviço ECI.
Crie um cluster ACK Serverless
Os passos a seguir descrevem apenas as configurações básicas para criar um cluster ACK Serverless. Em ambientes de produção, configure os parâmetros e instale componentes conforme suas necessidades de negócio. Para mais detalhes, veja Criar um cluster.
-
Acesse a página de criação de cluster.
Faça login no console do Container Service for Kubernetes (ACK).
No painel de navegação à esquerda, clique em Cluster.
No canto superior direito da página Clusters, clique em Create Kubernetes Cluster.
-
Selecione a aba **ACK Serverless, defina as configurações do cluster e clique em Next: Component Configurations**.
A tabela abaixo detalha os principais parâmetros. Configure os demais itens conforme seus requisitos.
Parâmetro
Exemplo
Descrição
Cluster Name
test
Insira um nome para o cluster.
Region
China (Beijing)
Escolha a região onde deseja criar o cluster.
VPC
Create VPC
Especifique a VPC para o cluster.
-
Create VPC: Selecione uma zona. O sistema cria automaticamente uma VPC, um vSwitch na zona escolhida, um gateway NAT e configura regras SNAT.
-
Select Existing VPC: Escolha uma VPC e um vSwitch já existentes.
Configure SNAT
Configure SNAT for VPC
Configure o SNAT caso seu cluster precise de acesso à internet pública.
-
Ao selecionar Create VPC, o SNAT é configurado automaticamente.
-
Se utilizar uma VPC existente, decida se deve configurar o SNAT conforme sua necessidade.
Service CIDR
172.21.0.0/20
Defina um bloco CIDR de serviço que não sobreponha o bloco CIDR da VPC ou os blocos CIDR de outros clusters Kubernetes na mesma VPC. Essa configuração não pode ser alterada após a criação do cluster. Para mais informações, consulte Planejar redes para clusters gerenciados pelo ACK.
Access to API Server
Expose API server with EIP
Decida se deseja expor o servidor de API usando um EIP. O servidor de API fornece APIs REST HTTP para criar, atualizar, excluir e monitorar objetos de recursos, como Pods e serviços.
-
Ao ativar esta opção, um EIP é criado e associado a uma instância do Server Load Balancer (SLB). Isso expõe o servidor de API do Kubernetes na porta 6443 do EIP, permitindo conectar-se e gerenciar o cluster pela internet via arquivo kubeconfig.
-
Caso não ative esta opção, nenhum EIP será criado. A conexão e o gerenciamento do cluster via arquivo kubeconfig ficarão restritos ao interior da VPC.
-
-
Configure os componentes e clique em Next: Confirm Configuration.
Ajuste os componentes conforme necessário. O uso de componentes opcionais pode gerar custos. Para este tutorial, nenhum componente adicional é obrigatório.
-
Revise suas configurações, leia e marque a caixa de seleção Terms of Service e clique em Create Cluster.
Retorne à página Clusters. O cluster estará pronto quando seu status mudar para Running.
Implantar em um cluster ACK Serverless
Siga os passos abaixo para implantar uma aplicação NGINX em um cluster ACK Serverless.
Na página Clusters, localize seu cluster ACK Serverless e clique no nome dele.
-
Crie um Deployment para a aplicação NGINX.
No painel de navegação à esquerda, selecione Workloads > Deployments.
No canto superior direito, clique em Create from YAML.
-
Modifique o modelo YAML conforme necessário e clique em Create.
Por padrão, o modelo de exemplo Resource-basic Deployment vem selecionado. O YAML neste modelo declara um Deployment contendo dois Pods. Cada Pod possui o rótulo app: nginx e executa um contêiner NGINX.
NotaNo modelo de exemplo,
image: nginx:1.7.9especifica a imagem NGINX 1.7.9 a ser baixada do docker Hub. Se o seu cluster não tiver acesso à internet pública, ele não conseguirá baixar essa imagem. Substitua-a por uma imagem dentro da sua VPC, comoimage: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2.apiVersion: apps/v1 # for versions before 1.0.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # nodeSelector: # env: test-team containers: - name: nginx image: nginx:1.7.9 # replace it with your image and tag ports: - containerPort: 80 resources: limits: cpu: "500m" resources: limits: cpu: "500m" -
Verifique o Deployment.
-
Na página Deployments, visualize as informações do Deployment.
O valor
2/2na coluna Pods indica que ambos os Pods do Deployment estão em execução. -
Ainda na página Deployments, clique no nome do Deployment para ver seus detalhes.
Na aba Pods, confirme que o status de ambos os Pods é Running. Clique no nome de um Pod para visualizar seus detalhes.
-
Cada Pod corresponde a uma instância ECI. Visualize as instâncias ECI correspondentes na página Container Group do console do Elastic Container Instance.
O status das instâncias ECI correspondentes deve ser Running.
-
-
Crie um serviço para expor a aplicação NGINX.
No painel de navegação à esquerda, selecione Network > Services.
No canto superior direito, clique em Create Resources in YAML.
-
Copie o YAML abaixo e clique em Create.
Este YAML cria um serviço do tipo LoadBalancer. Ele expõe a porta 80 e direciona o tráfego para os Pods que possuem o rótulo app: nginx.
apiVersion: v1 kind: Service metadata: name: nginx-service spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer -
Valide o serviço criado.
Na página Services, clique no nome do serviço para ver seus detalhes. O serviço associa-se automaticamente ao Deployment criado na etapa anterior. Os endpoints de backend são os dois Pods desse Deployment.
Como o tipo de serviço é LoadBalancer, seu External Endpoint será um endereço IP como
47.94.xxx:80, permitindo o acesso externo via internet. A tabela de endpoints mostra que ambos os Pods rodam no nó virtual-kubelet, confirmando que a aplicação opera em modo serverless.
-
Acesse a aplicação NGINX.
Digite o
endereço IP:portado endpoint externo no seu navegador web para acessar a aplicação NGINX.Após o acesso bem-sucedido, o navegador exibirá a página inicial padrão do NGINX com o título Welcome to nginx!. Isso indica que a aplicação NGINX foi implantada e está funcionando corretamente.