No início desta semana, lançamos a Akamai App Platform, uma extensão de um clique para o Linode Kubernetes Engine (LKE) para adicionar facilmente ferramentas centradas em desenvolvedores e operações, automação e autoatendimento para simplificar o ciclo de vida da aplicação ao usar o Kubernetes. A Akamai App Platform conecta muitas das tecnologias encontradas no cenário da CNCF (Cloud Native Computing Foundation) de forma a fornecer valor direto.
Nesta postagem do blog, orientaremos você nas etapas de provisionamento de um cluster LKE com a Akamai App Platform e, em seguida, criaremos, implantaremos e exporemos publicamente uma aplicação.
Provisionar um cluster Kubernetes usando a Akamai App Platform
A Akamai App Platform já está disponível em versão beta. Portanto, antes de começarmos, primeiro certifique-se de fazer login na sua conta ou inscreva-se em uma conta de computação em nuvem da Akamai. Depois de fazer login, registre-se no programa beta na página Betas.
Agora selecione Kubernetes no menu de navegação esquerdo e selecione Criar Cluster. A página Criar um cluster do Kubernetes é exibida. Na parte superior da página, é-lhe pedido que selecione as seguintes opções:
- No campo Rótulo do cluster, forneça um nome para o seu cluster. O nome deve ser exclusivo entre todos os clusters da sua conta. Esse nome é como você identifica seu cluster no painel do Cloud Manager.
- Selecione a sua região no menu pendente.
- Selecione a versão do Kubernetes para implementar no seu cluster a partir do menu pendente.
- Na secção Plataforma de aplicações para LKE, selecione "Sim, ativar a Plataforma de aplicações para LKE"
- Na secção "Add Node Pools" (Adicionar grupos de nós), selecione os recursos de hardware para o(s) nó(s) de trabalho Linode que constituem o seu cluster LKE. Durante a fase beta, a plataforma de aplicativos para LKE exige um pool de nós com pelo menos 3 nós de trabalho com um mínimo de 16 GB de memória por nó. Shared CPU não é suportado atualmente.
- Selecione Adicionar para incluir o conjunto de nós na sua configuração.
- Depois que um pool de nós é adicionado à sua configuração, ele é listado no Resumo do cluster, no lado direito do Cloud Manager, detalhando os recursos de hardware e o custo mensal do seu cluster.
- Quando estiver satisfeito com a configuração do seu cluster, selecione Criar cluster no lado direito do ecrã. A página de detalhes do cluster é exibida e os pools de nós são listados nessa página.
Agora, o cluster LKE será criado e, quando estiver pronto, a Plataforma de aplicações será instalada. A instalação da plataforma de aplicações para LKE demora cerca de 10 a 15 minutos. Quando a instalação estiver concluída, o URL do Portal Endpoint aparecerá na secção App Platform for LKE da página de detalhes do cluster. O progresso da instalação será verificado a cada 60 segundos. Quando a instalação ainda estiver a decorrer, o URL do Portal Endpoint não será apresentado. Em vez disso, aparecerá a mensagem "Installation in progress" (Instalação em curso).
Quando a instalação do cluster LKE e da plataforma de aplicações estiver concluída, clique no URL fornecido do ponto de extremidade do portal:
Aparecerá agora a seguinte página de início de sessão:
Para iniciar a sessão, primeiro é necessário obter as credenciais iniciais. Na página de detalhes do cluster, navegue até o menu de opções de reticências e selecione Download do Kubeconfig. O ficheiro é guardado na pasta Downloads do seu computador.
Abra uma shell de terminal e guarde o caminho do ficheiro Kubeconfig na variável de ambiente $KUBECONFIG. No comando de exemplo, o ficheiro Kubeconfig está localizado na pasta Downloads, mas deve alterar esta linha com a localização desta pasta no seu computador:
export KUBECONFIG=~/Downloads/kubeconfig.yaml
Execute agora o seguinte comando para obter o nome de utilizador:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d
E execute o seguinte comando para obter a palavra-passe:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d
Utilize agora as credenciais obtidas para iniciar sessão na consola e alterar a palavra-passe inicial.
Configurar Object Storage para a plataforma de aplicações
Quando tiver iniciado sessão na Consola, a primeira coisa que terá de fazer é configurar Object Storage. Será apresentada uma mensagem a perguntar se a Plataforma de Aplicações deve configurar o armazenamento de objectos para si.
Isto não é obrigatório, mas é fortemente recomendado, uma vez que evitará erros de falta de espaço em disco ao utilizar Volumes de Armazenamento para aplicações integradas. A utilização de Object Storage também tem a vantagem de criar cópias de segurança de todas as bases de dados utilizadas pela plataforma e de todos os repositórios Git.
Se não pretender que a Plataforma de Aplicações configure o armazenamento de objectos por si, selecione Ignorar por agora. Tenha em atenção que, neste caso, algumas funcionalidades, como a criação de cópias de segurança de bases de dados, não estarão disponíveis. Pode iniciar o Assistente em qualquer altura na secção Manutenção.
- Clicar
Yes
. - Siga as instruções para criar um Token de Acesso Pessoal e certifique-se de que seleciona Leitura/Escrita para a categoria Object Storage . Copie o Token de API.
- Cole o Token de Acesso no assistente e selecione a região onde os buckets devem ser criados:
- Em seguida, clique em
Submit
.
Todos os Object Storage Buckets necessários e uma Chave de Acesso serão agora criados na sua conta e a Plataforma de Aplicações será configurada para utilizar os buckets para armazenar cópias de segurança, registos, métricas, rastreios e imagens. O token de acesso pessoal fornecido não será armazenado. Os buckets criados terão o lke<cluster-id>
prefixo.
Ativar o porto
Agora que o armazenamento de objetos está configurado, podemos compor a plataforma de aplicativos habilitando os aplicativos necessários. Neste post, queremos criar uma imagem a partir do código-fonte, portanto, precisamos habilitar o aplicativo Harbor porque o recurso de autoatendimento Build usa o Harbor para armazenar todas as imagens de contêiner.
- No menu da esquerda, clique em
Apps
. - Passe o rato sobre a aplicação Harbor e clique no botão ativar.
- No canto superior esquerdo, clique em
Deploy Changes
.
O Harbor será agora instalado e configurado para utilização.
Criar uma equipa
Agora, a próxima coisa que precisa de fazer é criar uma Equipa. Uma equipa é um inquilino na plataforma. É como um espaço de nome como um serviço. Cada Equipa pode ter os seus próprios membros e estes terão acesso à Consola para utilizar todas as funcionalidades de autosserviço. Falaremos mais sobre as equipas em publicações posteriores. Vamos criar uma Equipa:
- Certifique-se de que seleciona
platform
noview
na barra superior. - Clique em
Teams
no menu da esquerda. - Clicar
Create Team
. - Preencha um nome para a equipa. Nos exemplos, estamos a utilizar o nome da equipa demo. Note que um nome de equipa tem um máximo de 12 caracteres e o espaço de nomes criado terá o nome
team-<team-name>
. - Ignorar todas as outras opções e clicar em
Submit
. - Clique em
Deploy Changes
no canto superior esquerdo da Consola.
Criar um repositório
Agora que criámos uma Equipa, podemos mudar para a função team
e selecionar a nossa equipa recém-criada. Na vista de equipa, verá também uma secção de aplicações no menu esquerdo, tal como na vista de plataforma. As aplicações na vista de equipa são aplicações que são partilhadas por todas as equipas na plataforma de aplicações e aplicações que são apenas (dedicadas) à equipa.
Todos os membros da equipa terão acesso às aplicações da equipa. Como queremos criar uma imagem, vamos primeiro criar um repositório com uma aplicação simples utilizando Nginx para servir uma única página HTML:
- Clique na aplicação Gitea. O Gitea é um serviço Git auto-hospedado em execução na plataforma de aplicativos e está pronto para ser usado.
- Selecione "Iniciar sessão com OpenID":
- Selecione "+ Novo Repositório":
- Adicione um nome para o repositório. Vamos chamar-lhe repositório
demo
- Seleccione
Make Repository Private
e seleccioneInitialize Repository
. - Clique em Criar Repositório.
Agora vamos adicionar algum código ao repositório. Vamos criar uma aplicação simples utilizando Nginx para servir uma página HTML.
Adicionar o ficheiro demo.html
com o seguinte conteúdo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Sample Deployment</title>
<style>
body {
color: #ffffff;
background-color: #0099cc;
font-family: Arial, sans-serif;
font-size: 14px;
}
h1 {
font-size: 500%;
font-weight: normal;
margin-bottom: 0;
}
h2 {
font-size: 200%;
font-weight: normal;
margin-bottom: 0;
}
.centered-text {
text-align: center;
}
</style>
</head>
<body>
<div class="centered-text">
<h1>Welcome to the App Platform</h1>
</div>
</body>
</html>
E adicione o ficheiro Dockerfile com o seguinte conteúdo:
FROM nginxinc/nginx-unprivileged:stable
COPY demo.html /usr/share/nginx/html/index.html
EXPOSE 8080
Criar, implementar e expor publicamente a aplicação
Agora vamos criar, implementar e expor publicamente a aplicação. Para isso, a Plataforma de aplicativos oferece um conjunto de formulários de autoatendimento. Pode utilizar o formulário de self-service Builds para criar imagens a partir do código-fonte, utilizar um dos modelos Helm de início rápido do Catálogo para implementar a aplicação e utilizar o formulário de self-service Services para expor publicamente a aplicação.
Passo 1: Construir a imagem
- Certifique-se de que seleciona
team
noview
na barra superior. Lembre-se de que tem sessão iniciada como administrador da plataforma e pode ver tanto a plataforma como a vista da equipa. - Clique em
Builds
no menu da esquerda. - Clicar
Create Build
. - Adicione um nome para a compilação. Vamos chamar a esta compilação
demo
. - Use o modo Docker Build (padrão) e adicione o URL do repositório Git que acabamos de criar. Na próxima versão da Plataforma de Aplicações, poderá selecionar o URL com base nos repositórios disponíveis.
- Clicar
Submit
. - Clicar
Deploy Changes
na parte superior da barra de menus à esquerda.
A Plataforma de Aplicações irá agora criar e executar um pipeline Tekton para clonar a aplicação a partir do repositório, construir a imagem e enviar a imagem para o Harbor. A imagem será enviada para o registo privado no Harbor, que só é acessível aos membros da equipa.
Pode agora acompanhar o estado da construção abrindo o Tekton Dashboard na secção Apps (na vista de equipa!). Também pode clicar em Builds no menu da esquerda. Aí verá a construção criada pelo Projeto. Clique na ligação PipelineRun para ver o estado da compilação.
Quando o pipeline estiver pronto, pode ver a imagem no Harbor. Go para a secção Apps no menu esquerdo e clique em Harbor. Lembre-se de que tem sessão iniciada como administrador da plataforma e verá todos os projectos criados pela plataforma de aplicações. Clique no projeto da equipa que criámos. Aqui verá um repositório chamado team-demo/demo
.
Etapa 2: Criando uma carga de trabalho para implantar nossa imagem
- Primeiro, vá à lista de compilações e copie o nome do repositório da imagem:
- Agora clique em
Catalog
no menu da esquerda. - No Catálogo, clique no ícone
Quickstart-K8s-Deployment
gráfico. - Clique no separador Valores.
- Adicione um nome para a carga de trabalho. Vamos manter o nome
demo
. - No
Chart values fil
e definir oimage.repository
para o nome do registo que adicionámos à nossa área de transferência e utilizarlatest
para oimage.tag
. - Clicar
Submit
na parte inferior dos valores do gráfico. - Clicar
Deploy Changes
na parte superior da barra de menu esquerda
A Plataforma de aplicativos agora criará um ApplicationSet do Argo CD para implantar o aplicativo. Observe que os valores e o gráfico são armazenados em repositórios Git separados.
Para ver a aplicação de demonstração no Argo CD, clique em Cargas de trabalho no menu da esquerda. Aí verá a carga de trabalho criada pelo projeto. Clique na ligação Aplicação para ver o estado da carga de trabalho.
Passo 3: Expor publicamente a aplicação
Para ver a nossa aplicação em direto, é necessário fazer algumas coisas. A plataforma de aplicativos aproveita uma arquitetura de entrada avançada usando Nginx Ingress e Istio. Para expor a aplicação, precisamos de criar um Ingress e um Istio VirtualService. Felizmente, a plataforma de aplicativos automatiza tudo isso.
- Agora clique em
Services
no menu. - Clicar
Create Service
. - Na lista pendente, selecione o
demo
serviço - Abaixo de
Exposure
cliqueExternal
. - Clicar
Submit
e depoisDeploy Changes
.
Na lista de serviços, verá o serviço que acabámos de criar e o URL utilizado para publicar o serviço. Clique no URL.
Recapitulação
Neste post, provisionamos um cluster LKE e habilitamos a plataforma de aplicativos. Em seguida, configurámos o armazenamento de objectos, activámos a aplicação Harbor, criámos uma equipa e um repositório de código. Em seguida, usamos os formulários de autoatendimento na Plataforma de aplicativos para criar, implantar e expor publicamente um aplicativo.
Após a instalação da plataforma de aplicações, pode configurar o armazenamento de objectos para que todas as aplicações integradas na plataforma de aplicações possam utilizar esta configuração. Não há mais tentativa e erro para configurar o armazenamento de objetos para aplicações como Grafana Loki, Thanos, Harbor e Tempo. Com a App Platform on Akamai, tudo isso é feito para você.
A utilização do Teams para multi-tenancy permite-lhe permitir que vários grupos de utilizadores trabalhem de forma independente e partilhem as mesmas capacidades de infraestrutura e plataforma. Os utilizadores podem utilizar os formulários self-service para criar, implementar e expor as suas aplicações em poucos minutos.
Note-se que estamos apenas a dar a ponta do icebergue. A Plataforma de aplicações tem muito mais para oferecer. Em breve publicaremos mais artigos para aprofundar a Plataforma de Aplicações e mostrar-lhe como criar segredos, configurar políticas de rede, trabalhar com políticas de segurança e utilizar as capacidades da plataforma para CI/CD, observabilidade e segurança.
Comentários