Kubernetes: Implantar um Aplicativo Node Express
Neste tutorial, você usa uma conta do Oracle Cloud Infrastructure para configurar um cluster do Kubernetes. Em seguida, implante um aplicativo Node Express no seu cluster.
As principais tarefas incluem:
- Configurar um cluster do Kubernetes no OCI.
- Configure a CLI do OCI para acessar seu cluster.
- Crie um aplicativo Node Express e uma Imagem do Docker.
- Enviar sua imagem por push ao OCIR.
- Implante seu aplicativo Node.js Docker no seu cluster.
- Estabelecer conexão com seu aplicativo pela internet.

Para obter informações adicionais, consulte:
Antes de Começar
Para executar este tutorial com sucesso, você precisa ter o seguinte:
- Para Container Registry, Kubernetes e Balanceadores de Carga:
- Uma conta do Oracle Cloud Infrastructure paga.
- Consulte Cadastrando-se no Oracle Cloud Infrastructure.
- Para criar aplicativos e imagens do Docker:
- Um dos seguintes ambientes locais:
- Uma máquina MacOS ou Linux.
- Uma máquina Windows com suporte ao Linux. Por exemplo:
- Os seguintes aplicativos em seu ambiente local:
- JDK 11 e defina JAVA_HOME em .bashrc.
- Instalador de Python 3.6.8+ e pip para Python 3
- Cliente Kubernetes 1.11.9+
- Apache Maven 3.0+
- Docker 19.0.3+
- Git 1.8+
- Node.js 10+
- Um dos seguintes ambientes locais:
Se você não quiser configurar os aplicativos necessários no seu ambiente local, poderá usar em seu lugar o Cloud Shell do Oracle Cloud Infrastructure. A vantagem de usar o Cloud Shell é que todas as ferramentas necessárias para gerenciar seu aplicativo já estão instaladas e prontas para uso. Siga as etapas um e dois em:
Kubernetes Usando o Cloud Shell: Implantar um Aplicativo Spring Boot
Se você quiser usar uma instância de computação do OCI Free Tier Linux para gerenciar sua implantação, as seções a seguir fornecem informações para instalar o software necessário.
- Instale uma VM Linux com uma forma de computação Always Free no Oracle Cloud Infrastructure. Você precisará de uma máquina com suporte a
ssh
para se conectar à sua instância do Linux.- Instalar uma VM do Oracle Linux
- Siga as seções 2 e 3.
- Se você tiver uma conta paga, na seção 2, escolha suas opções de computação com base nas suas ofertas.
- Para estabelecer conexão com sua instância, na seção 4, siga as etapas de 1 a 5.
- Ignore as instruções do Apache.
- Instalar uma VM com Ubuntu
- Siga as seções 2 e 3.
- Se você tiver uma conta paga, na seção 2, escolha as opções de computação com base nas suas ofertas.
- Para estabelecer conexão com sua instância, na seção 4, siga as etapas de 1 a 5.
- Ignore as instruções do Apache.
- Para atualizar as definições de firewall, na seção 4, execute a etapa 8.
- Instalar uma VM do Oracle Linux
Instale o Node.js no seu sistema.
Para instalar o Node.js e o NPM, execute os seguintes comandos:
- Oracle Linux:
sudo yum update
Configure o repositório Yum para Node.js. Em seguida, instale o pacote
nodejs
.sudo yum install -y oracle-nodejs-release-el7 sudo yum install -y nodejs
- Ubuntu:
sudo apt update
Instale os pacotes
nodejs
enpm
.sudo apt install -y nodejs sudo apt install -y npm
- Verifique a instalação.
node -v npm -v
Se você quiser fazer testes baseados em browser do seu aplicativo Node, disponibilize a porta 3000 na sua instância do Linux.
- Oracle Linux
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload
- Ubuntu Linux
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3000 -j ACCEPT sudo netfilter-persistent save
Siga estas etapas para selecionar a sub-rede pública da sua VCN e adicionar a regra de entrada.
- Abra o menu de navegação e clique em Rede; em seguida, clique em Redes Virtuais na Nuvem.
- Selecione a VCN que você criou com sua instância de computação.
- Com sua nova VCN exibida, clique no link de sub-rede <your-subnet-name>.
As informações da sub-rede pública são exibidas com as Listas de Segurança na parte inferior da página. Um link para a Lista de Segurança Padrão da sua VCN é exibido.
- Clique no link Lista de Segurança Padrão.
As Regras de Entrada padrão da sua VCN são exibidas.
- Clique em Adicionar Regras de Entrada.
Uma caixa de diálogo Adicionar Regras de Entrada é exibida.
- Preencha a regra de entrada com as informações a seguir.
Preencha a regra de entrada da seguinte forma:
- Sem monitoramento de estado: Marcado
- Tipo de Origem: CIDR
- CIDR de Origem: 0.0.0.0/0
- Protocolo IP: TCP
- Intervalo de portas de origem: (leave-blank)
- Faixa de Portas de Destino: 3000
- Descrição: Permitir conexões HTTP
- Clique em Adicionar Regra de Entrada.
Agora são permitidas conexões HTTP. Sua VCN está configurada para o Node Express.
Você criou com sucesso uma regra de entrada que disponibiliza sua instância pela internet.
- Verifique sua instalação atual.
python3 --version
- Para Python 3, execute os seguintes comandos:
- Oracle Linux:
sudo yum update
sudo yum install -y python3
- Ubuntu:
sudo apt update
sudo apt install -y python3
- Oracle Linux:
- Verifique a instalação do pip para o Python3.
pip3 -V
Exemplo de saída se o pip para Python3 estiver instalado:
pip <version> from xxx/lib/python3.x/site-packages/pip (python 3.x)
- Para instalar o pip para Python 3, execute os seguintes comandos:
- Oracle Linux:
sudo yum update
sudo yum install -y python3-pip
- Ubuntu:
sudo apt update
sudo apt install -y python3-pip
- Oracle Linux:
- Verifique a instalação do pip para Python 3.
pip3 -V
- Verifique sua instalação atual:
kubectl version --client
Se você tiver o Kubernetes, a versão será<major-version>.<minor-version>
. Por exemplo, para a versão 1.20, você obtém o seguinte:version.Info{Major:"1", Minor:"20"...
- Para instalar o cliente
kubectl
, consulte os seguintes links: - Verifique a instalação.
kubectl version --client
- Verifique sua instalação atual:
docker -v
- Oracle Linux
Para instalar o Docker no Oracle Linux, execute os comandos a seguir.
sudo yum install docker-engine
sudo systemctl start docker
sudo systemctl enable docker
Observação: O último comando permite que o Docker seja iniciado nas reinicializações.
- Ubuntu Linux
Para instalar o Docker no Ubuntu Linux, consulte o seguinte link: Obter Docker
- Verifique a instalação.
docker -v
1. Preparar
Prepare seu ambiente para criar e implantar seu aplicativo.
- Faça log-in na Console do Oracle Cloud Infrastructure.
- Abra o menu de navegação e clique em Governança e Administração. Em Governança, clique em Limites, Cotas e Uso.
- Localize seu limite de serviço para Regiões:
- Filtro para as seguintes opções:
- Serviço: Regiões
- Escopo: Tenancy
- Recurso: Contagem de regiões assinadas
- Serviço:
<tenancy-name>
(raiz)
- Localizar limite de serviço:
- Nome do Limite:
subscribed-region-count
- Limite de Serviço: no mínimo 2
- Nome do Limite:
- Filtro para as seguintes opções:
- Localize sua contagem de núcleos do serviço Compute disponível para a forma VM.Standard.E3.Flex:
- Filtro para as seguintes opções:
- Serviço : Compute
- Escopo:
<first-availability-domain>
. Exemplo:EMlr:US-ASHBURN-AD-1
- Recurso: Núcleos para Instâncias Standard.E3.Flex e BM.Standard.E3.128
- Serviço:
<tenancy-name>
(raiz)
- Localizar contagem de núcleos disponível:
- Nome do Limite:
standard-e3-core-ad-count
- Disponível: no mínimo 1
- Nome do Limite:
- Repita para Escopo:
<second-availability-domain>
e<third-availability-domain>
. Cada região deve ter pelo menos um núcleo disponível para esta forma.
- Filtro para as seguintes opções:
- Descubra se você tem 50 GB de Volume em Blocos disponível:
- Filtro para as seguintes opções:
- Serviço: Volume em Bloco
- Escopo:
<first-availability-domain>
. Exemplo:EMlr:US-ASHBURN-AD-1
- Tamanho do Volume (GB) do Recurso
- Serviço:
<tenancy-name>
(raiz)
- Localize o armazenamento de volume em blocos disponível:
- Nome do Limite:
total-storage-gb
- Disponível: no mínimo 50
- Nome do Limite:
- Repita para Escopo:
<second-availability-domain>
e<third-availability-domain>
. Cada região deve ter pelo menos 50 GB de volume em blocos disponível.
- Filtro para as seguintes opções:
- Descubra quantos Balanceadores de Carga Flexíveis você tem disponíveis:
- Filtro para as seguintes opções:
- Serviço: LbaaS
- Escopo:
<your-region>
. Exemplo:us-ashburn-1
- Recurso:
<blank>
- Serviço:
<tenancy-name>
(raiz)
- Localize o número de balanceadores de carga flexíveis disponíveis:
- Nome do Limite:
lb-flexible-count
- Disponível: no mínimo 1
- Nome do Limite:
- Filtro para as seguintes opções:
Este tutorial cria três instâncias de computação com uma forma VM.Standard.E3.Flex para os nós do cluster. Para usar outra forma, filtre sua contagem de núcleos. Por exemplo, para VM.Standard2.4, filtre Núcleos para Instâncias de VM e BM baseadas em Standard2 e obtenha a contagem.
Para obter uma lista de todas as formas, consulte Formas Padrão da VM.
Este tutorial usa um workflow de 'Criação Rápida' para criar um cluster com uma sub-rede regional pública que hospede um balanceador de carga flexível. Para usar outro balanceador de carga, você pode usar um workflow personalizado para especificar explicitamente quais recursos de rede existentes devem ser usados, incluindo as sub-redes existentes nas quais os balanceadores de carga serão criados.
Para usar outra largura de banda para o balanceador de carga, filtre por sua contagem, por exemplo, Largura de banda de 100 Mbps ou Largura de banda de 400 Mbps.
- Na barra de navegação, selecione o menu Perfil e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção exibida.
- Clique em Tokens de Autenticação.
- Clique em Gerar Token.
- Dê a ele uma descrição.
- Clique em Gerar Token.
- Copie o token e salve-o.
- Clique emFechar.
Certifique-se de salvar seu token logo após criá-lo. Você não terá acesso a ele posteriormente.
O Python virtualenv
cria uma pasta que contém todos os arquivos executáveis e bibliotecas do seu projeto.
O virtualenvwrapper
é uma extensão para virtualenv
. Ele fornece um conjunto de comandos que tornam o trabalho com ambientes virtuais muito mais agradável. Ele também coloca todos os seus ambientes virtuais em um só lugar. O virtualenvwrapper
fornece preenchimento de guia em nomes de ambiente.
- Instale
virtualenv
.pip3 install --user virtualenv
- Instale
virtualenvwrapper
.pip3 install --user virtualenvwrapper
- Localize o local do script
virtualenvwrapper.sh
.grep -R virtualenvwrapper.sh
Exemplo de caminhos:- Exemplo do Linux:
/home/ubuntu/.local/bin/virtualenvwrapper.sh
- Exemplo de MacOS:
/usr/local/bin/virtualenvwrapper.sh
- Exemplo do Linux:
- Configure o encapsulador do ambiente virtual em
.bashrc
.sudo vi .bashrc
Anexe o texto a seguir.
# set up Python env export WORKON_HOME=~/envs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 ' source <path-to-virtualenvwrapper.sh>
Substitua
<path-to-virtualenvwrapper.sh>
por seu valor.Com base na localização de arquivos binários Python3 em seu ambiente, atualize
/usr/bin/python3
para sua localização correta.Salve o arquivo.
- Ative os comandos na janela atual.
source ~/.bashrc
Exemplo de saída:virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/initialize virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/prermvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postrmvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/predeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postdeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/preactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postactivate
- Inicie um ambiente virtual.
workon cli-app
- Confirme se o nome do seu ambiente virtual,
cli-app
, aparece à esquerda do prompt de comando.Exemplo:
(cli-app) ubuntu@<ubuntu-instance-name>:~$
- Instale a CLI do OCI.
pip3 install oci-cli
- Teste a instalação:
oci --version
Se tudo estiver configurado corretamente, você obterá a versão.
oci --help
- Digite o seguinte comando no ambiente virtual:
oci setup config
- Informe suas respostas na seção Reunir Informações Necessárias:
- Localização da sua configuração [$HOME/.oci/config]:
<take-default>
- OCID DO Usuário:
<user-ocid>
- OCID da Tenancy:
<tenancy-ocid>
- Região (por exemplo, us-ashburn-1):
<region-identifier>
- Localização da sua configuração [$HOME/.oci/config]:
- Digite as informações a seguir para configurar suas chaves de criptografia da API OpenSSL:
- Gerar um novo par de chaves RSA de Assinatura de API? [S/n]: S
- Diretório das suas chaves [$HOME/.oci]:
<take-default>
- Nome da sua chave [oci_api_key]
<take-default>
- Desativar o ambiente virtual:
deactivate
O prefixo
(cli-app)
em seu ambiente não é mais exibido.
Sua chave privada é
oci_api_key.pem
e sua chave pública é oci_api_key_public.pem
.- Ative o ambiente
cli-app
:workon cli-app
- Exiba a chave pública.
cat $HOME/.oci/oci_api_key_public.pem
- Copie a chave pública.
- Adicione a chave pública à sua conta de usuário:
- Vá até a Console.
- Na barra de navegação, selecione o menu Perfil e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção exibida.
- Clique em Chaves de API.
- Clique em Adicionar Chave de API.
- Clique em Colar Chave Pública.
- Colar valor da etapa anterior, incluindo as linhas com
BEGIN PUBLIC KEY
eEND PUBLIC KEY
. - Clique em Adicionar.
- Sempre que você quiser usar a CLI do OCI, ative-a com:
workon cli-app
- Quando você altera nomes de projeto,
workon
desativa seu ambiente de trabalho atual. Dessa forma, é possível alternar rapidamente entre ambientes.
2. Configurar um Cluster
Instale e configure opções de gerenciamento para seu cluster do Kubernetes. Posteriormente, implante seu aplicativo nesse cluster.
Se seu nome de usuário estiver no grupo Administradores, ignore esta seção. Caso contrário, peça ao administrador para adicionar a seguinte política à sua tenancy:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
Com esse privilégio, você pode criar um compartimento para todos os recursos do seu tutorial.
- Na barra de navegação, selecione o menu Perfil e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção exibida.
- No painel esquerdo, clique em Grupos.
- Em um bloco de notas, copie o Nome do Grupo ao qual seu nome de usuário pertence.
- Abra o menu de navegação e clique em Identidade e Segurança. Em Identidade, clique em Políticas.
- Selecione seu compartimento na lista drop-down Compartimento.
- Clique em Criar Política.
- Preencha as seguintes informações:
- Nome:
manage-compartments
- Descrição:
Allow the group <the-group-your-username-belongs> to list, create, update, delete and recover compartments in the tenancy.
- Compartimento:
<your-tenancy>(root)
- Nome:
- Para o Criador de Política, clique em Mostrar editor manual.
- Cole na seguinte política:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
- Clique em Criar.
Referência: O resource-type compartments
em Combinações Verbos + Resource-Type para o Serviço IAM
Crie um compartimento para os recursos criados neste tutorial.
- Acesse a Console do Oracle Cloud Infrastructure.
- Abra o menu de navegação e clique em Identidade e Segurança. Em Identidade, clique em Compartimentos.
- Clique em Criar Compartimento.
- Preencha as seguintes informações:
- Nome:
<your-compartment-name>
- Descrição
Compartment for <your-description>.
- Compartimento Principal:
<your-tenancy>(root)
- Nome:
- Clique em Criar Compartimento.
Referência: Criar um compartimento
Se seu nome de usuário estiver no grupo Administradores, ignore esta seção. Caso contrário, peça ao administrador para adicionar a seguinte política à sua tenancy:
allow group <the-group-your-username-belongs> to manage all-resources in compartment <your-compartment-name>
Com esse privilégio, você pode gerenciar todos os recursos em seu compartimento, essencialmente dando a você direitos administrativos nesse compartimento.
- Abra o menu de navegação e clique em Identidade e Segurança. Em Identidade, clique em Políticas.
- Selecione seu compartimento na lista drop-down Compartimento.
- Clique em Criar Política.
- Preencha as seguintes informações:
- Nome:
manage-<your-compartment-name>-resources
- Descrição:
Allow users to list, create, update, and delete resources in <your-compartment-name>.
- Compartimento:
<your-tenancy>(root)
- Nome:
- Para o Criador de Política, selecione as seguintes opções:
- Casos de uso da política:
Compartment Management
- Modelos de política comum:
Let compartment admins manage the compartment
- Grupos
<the-group-your-username-belongs>
- Localidade:
<your-tenancy>(root)
- Casos de uso da política:
- Clique em Criar.
Referência: Políticas Comuns
Crie um cluster com definições padrão e novos recursos de rede por meio do workflow 'Criação Rápida'.
Depois de criar um cluster do Kubernetes, configure o sistema local para acessar o cluster.
Com o acesso ao cluster configurado, agora você está pronto para preparar seu aplicativo para implantação.
3. Criar um Aplicativo Local
Crie um aplicativo local e uma imagem do Docker para o aplicativo.
Crie seu aplicativo Node.js.
Você configurou com sucesso seu aplicativo Node.js.
Execute seu aplicativo Node.js.
Você criou com sucesso um aplicativo Hello World usando o Node.js e o Express.
Referências:
- Para obter informações detalhadas sobre este exemplo, consulte Introdução ao Express.
Em seguida, crie uma imagem do Docker para seu aplicativo Node.js Express.
4. Implantar Sua Imagem do Docker
Envie sua imagem do Node.js Express ao OCI Container Registry. Em seguida, use a imagem para implantar seu aplicativo.
Com sua imagem local do Docker criada, envie a imagem para o Container Registry.
Siga estas etapas.
Localize sua imagem no Container Registry após a conclusão do comando push.
O Que Vem a Seguir
Você criou com sucesso um aplicativo Hello World, implantou-o em um cluster do Kubernetes e o tornou acessível na internet, usando a estrutura do Node Express.
Confira estes sites para explorar mais informações sobre desenvolvimento com produtos Oracle: