Observação:
- Este tutorial está disponível em um ambiente de laboratório gratuito fornecido pela Oracle.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir o laboratório, substitua esses valores pelos específicos do seu ambiente de nuvem.
Implantar Ambiente Nativo do Oracle Cloud
Introdução
O Oracle Cloud Native Environment é uma suíte totalmente integrada para o desenvolvimento e o gerenciamento de aplicativos nativos da nuvem. O módulo Kubernetes é o módulo principal. É usado para implantar e gerenciar contêineres e também instala e configura automaticamente Contêineres CRI-O, runC e Kata. O CRI-O gerencia o runtime de contêiner para um cluster do Kubernetes. O runtime pode ser Contêineres runC ou Kata.
Objetivos
Esse laboratório demonstra como:
- Instalar o Oracle Cloud Native Environment Release 1.5 em um cluster de 3 nós
- Configurar Certificados da CA Privada x.590
- Configurar o Ambiente Nativo do Oracle Cloud em um cluster de 3 nós
- Verifique se a instalação foi concluída com sucesso
Pré-requisitos
Os sistemas host para executar as etapas deste tutorial estão listados nesta seção. Para ser bem-sucedido, é necessário:
-
3 sistemas Oracle Linux a serem usados como:
- Nó do operador (ocne-operator)
- Nó do plano de controle Kubernetes (ocne-control)
- Nó de trabalho do Kubernetes (ocne-worker)
-
Cada sistema deve ter um mínimo dos seguintes instalados:
- Oracle Linux 8 mais recente (x86_64) instalado e executando o Unbreakable Enterprise Kernel Versão 6 (UEK R6)
-
Este ambiente é pré-configurado com o seguinte:
- Criou uma conta de usuário Oracle (usada durante a instalação)
- Concedido ao acesso 'sudo' da conta Oracle
- Configure o SSH baseado em chave, também conhecido como SSH sem senha, entre as instâncias
Configurar Ambiente de Laboratório
Observação: ao usar o ambiente de laboratório gratuito, consulte Conceitos Básicos do Oracle Linux Lab para obter conexão e outras instruções de uso.
Este laboratório envolve vários sistemas, cada um dos quais requer diferentes etapas executadas. É recomendável começar abrindo três janelas de terminais e estabelecendo conexão com os nós ocne-operator, ocne-control e ocne-worker. Isso evita a necessidade de fazer log-in e log-out repetidamente.
-
Abra um terminal e conecte-se via ssh a cada um dos três nós.
ssh oracle@<ip_address_of_ol_node>
Observação Quando uma etapa diz "(Em todos os nós)" no laboratório, execute essas ações em ocne-operator, ocne-control e ocne-worker. O motivo dessa abordagem é evitar a repetição, porque a ação necessária será idêntica em cada nó.
(Opcional) Atualizar o Oracle Linux
-
(Em todos os nós) Certifique-se de que o Oracle Linux esteja atualizado.
sudo dnf -y update
Isso pode levar alguns minutos para ser concluído e poderá economizar tempo se essa etapa for executada em paralelo em cada nó separadamente.
-
(Em todos os nós) Reinicialize e reconecte.
sudo reboot
-
(Em todos os nós) Após a reinicialização do sistema, reconecte-se ao(s) nó(s) via ssh.
ssh oracle@<ip_address_of_ol_node>
Instalar e Ativar o Repositório Yum do Ambiente Nativo do Oracle Cloud
-
(Em todos os nós) Instale o repositório yum.
sudo dnf -y install oracle-olcne-release-el8
-
(Em todos os nós) Ative o repositório do Ambiente Nativo do Oracle Cloud atual.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_UEKR6
-
(Em todos os nós) Desative todas as versões anteriores do repositório.
sudo dnf config-manager --disable ol8_olcne12 ol8_olcne13 ol8_olcne14 ol8_developer
Instalar e Ativar o Chrony
-
(Em todos os nós) Se ainda não estiver disponível no sistema, instale e ative o serviço crony.
Verifique se a cronia foi instalada.
sudo dnf list --installed chrony
Se não estiver instalado, instale a cronia.
sudo dnf -y install chrony sudo systemctl enable --now chronyd
Observação: O ambiente de laboratório gratuito já tem o serviço crony (time) instalado e configurado.
Desativar Swap
-
(Em todos os nós) Desative a permuta em todos os nós.
sudo swapoff -a sudo sed -i '/swap/ s/^#*/#/' /etc/fstab
Configurar o Firewall do Oracle Linux
Observação: O serviço firewalld é instalado e executado por padrão no Oracle Linux.
-
(Em ocne-operator) Defina as regras de firewall para o nó do operador.
sudo firewall-cmd --add-port=8091/tcp --permanent sudo firewall-cmd --reload
-
(Em ocne-control) Defina as regras de firewall para o(s) nó(s) do plano de controle.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --reload
-
(Em ocne-control) Adicione o seguinte que é usado para Alta Disponibilidade e necessário para passar na validação.
sudo firewall-cmd --add-port=10251/tcp --permanent sudo firewall-cmd --add-port=10252/tcp --permanent sudo firewall-cmd --add-port=2379/tcp --permanent sudo firewall-cmd --add-port=2380/tcp --permanent sudo firewall-cmd --reload
-
(Em ocne-worker) Defina as regras de firewall para o(s) nó(s) de trabalho.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --reload
Carregar o Módulo de Filtragem de Ponte
-
(Em ocne-control e ocne-worker) Ative e carregue o módulo.
sudo modprobe br_netfilter sudo sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'
Configurar o Nó do Operador
O nó do operador executa e gerencia a implantação de ambientes, incluindo a implantação do cluster do Kubernetes. Um nó do operador pode ser um nó no cluster do Kubernetes ou um host separado, como neste tutorial. Instale o Oracle Cloud Native Environment Platform CLI, o Platform API Server e os utilitários no nó do operador.
-
(No ocne-operator) Instale o Platform CLI, o Platform API Server e os utilitários.
sudo dnf -y install olcnectl olcne-api-server olcne-utils
-
(Em ocne-operator) Ative o serviço
olcne-api-server
, mas não o inicie.sudo systemctl enable olcne-api-server.service
Configurar os Nós do Kubernetes
O plano de controle e os nós de trabalho do Kubernetes contêm os pacotes do utilitário e do Agente do Oracle Cloud Native Environment Platform.
-
(Em ocne-control e ocne-worker) Instale o pacote e os utilitários do Agente da Plataforma.
sudo dnf -y install olcne-agent olcne-utils
-
(Em ocne-control e ocne-worker) Ative o
olcne-agent
(mas não o inicie).sudo systemctl enable olcne-agent.service
As etapas acima concluem a configuração inicial e a instalação do software para cada nó.
(Opcional) Configuração do Servidor Proxy
Se estiver usando um Servidor Proxy, configure-o com CRI-O em cada nó do Kubernetes.
Observação: não é necessário no ambiente de laboratório gratuito.
-
(Em todos os nós) Crie o Serviço CRIO.
sudo mkdir /etc/systemd/system/crio.service.d
-
(Em todos os nós) Abra o arquivo de configuração do proxy com vi e defina-o no modo 'inserir'.
sudo vi /etc/systemd/system/crio.service.d/proxy.conf
-
(Em todos os nós) Substitua os valores de proxy apropriados para aqueles em seu ambiente usando o arquivo de exemplo abaixo.
[Service] Environment="HTTP_PROXY=proxy.example.com:80" Environment="HTTPS_PROXY=proxy.example.com:80" Environment="NO_PROXY=.example.com,192.0.2.*"
Configurar Certificados de CA Privada X.509
Use o script /etc/olcne/gen-certs-helper.sh
fornecido para gerar uma CA privada e certificados para os nós. Execute o script no diretório /etc/olcne
no nó do operador, salvando os arquivos de certificado no diretório atual.
-
(Em ocne-operator Crie os Certificados X.509.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name pub.linuxvirt.oraclecvn.com \ --nodes ocne-worker.pub.linuxvirt.oraclevcn.com,ocne-control.pub.linuxvirt.oraclevcn.com,ocne-operator.pub.linuxvirt.oraclevcn.com
Forneça as informações da CA privada usando as opções
--cert-request*
. Algumas dessas opções existem no exemplo. Execute o comandogen-certs-helper.sh --help
para obter uma lista completa de opções.--cert-request-common-name
: Forneça o Nome de Domínio DNS (Domain Name System) apropriado para seu ambiente.--nodes
: Forneça o nome de domínio totalmente qualificado (FQDN) dos seus nós operador, plano de controle e worker.
Transferir os Certificados da CA Privada X.509
Após gerar os certificados, copie-os para cada um dos nós.
-
(Em ocne-operator) Atualize os detalhes do usuário no script de transferência fornecido.
sudo sed -i 's/USER=opc/USER=oracle/g' configs/certificates/olcne-tranfer-certs.sh
O tutorial requer esta etapa porque o usuário padrão do script é
opc
. Desde a instalação do produto usando o usuáriooracle
, atualize a variávelUSER
dentro do script adequadamente. -
(No ocne-operator) Defina as permissões para cada node.key gerado pelo script de criação do certificado.
sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-control.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-operator.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-worker.pub.linuxvirt.oraclevcn.com/node.key
-
(Em ocne-operator) Transfira os scripts para cada nó.
Esta etapa requer SSH sem senha configurado entre os nós. A configuração disso está fora do escopo deste tutorial, mas é pré-configurada no ambiente de laboratório gratuito.
bash -ex /etc/olcne/configs/certificates/olcne-tranfer-certs.sh
-
(Em todos os nós) Verifique os arquivos copiados corretamente.
sudo -u olcne ls /etc/olcne/configs/certificates/production
Exemplo de Saída:
[oracle@ocne-control ~]$ sudo -u olcne ls /etc/olcne/configs/certificates/production ca.cert node.cert node.key
Configurar Certificados X.509 para o Serviço Kubernetes externalIPs
O serviço Kubernetes externalip-validation-webhook-service
requer que os certificados X.509 sejam configurados antes da implantação do Kubernetes.
-
(Em ocne-operator) Gere os certificados.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-dir /etc/olcne/configs/certificates/restrict_external_ip/ \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name cloud.example.com \ --nodes externalip-validation-webhook-service.externalip-validation-system.svc,\ externalip-validation-webhook-service.externalip-validation-system.svc.cluster.local \ --one-cert \ --byo-ca-cert /etc/olcne/configs/certificates/production/ca.cert \ --byo-ca-key /etc/olcne/configs/certificates/production/ca.key
--byo-ca-*
: Esta opção usa a chave e o certificado CA criados anteriormente.
-
(Em ocne-operator) Defina as permissões para o diretório que contém o node.key gerado pelo script de criação do certificado.
sudo chown -R oracle:oracle /etc/olcne/configs/certificates/restrict_external_ip/
Inicializar o Servidor de API da Plataforma
-
(No ocne-operator) Execute o script de bootstrap para configurar o Servidor de API da Plataforma para usar os certificados.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component api-server
Exemplo de Saída:
[oracle@ocne-operator olcne]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 13:35:19 GMT; 2s ago Main PID: 96132 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.2M CGroup: /system.slice/olcne-api-server.service `-96132 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne... May 11 13:35:19 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 13:35:19 ocne-operator olcne-api-server[96132]: time=11/05/22 13:35:19 level=info msg=Api server listening on: 8091
- Como alternativa, você pode usar certificados gerenciados pelo HashiCorp Vault. O uso desse método não está incluído neste tutorial.
-
(Em ocne-operator) Confirme se o Servidor de API da Plataforma está em execução.
sudo systemctl status olcne-api-server
Exemplo de saída:
[oracle@ocne-operator olcne]$ sudo systemctl status olcne-api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 10:44:30 GMT; 9min ago Main PID: 59600 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.6M CGroup: /system.slice/olcne-api-server.service `-59600 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne/c> May 11 10:44:30 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 10:44:30 ocne-operator olcne-api-server[59600]: time=11/05/22 10:44:30 level=info msg=Api server listening on: 8091 ...
-
(Em ocne-operator) Pressione 'q' para sair do processo e continuar para a próxima etapa.
Inicializar os Agentes de Plataforma
-
(No ocne-control e ocne-worker) Execute o script de bootstrap para configurar o Agente da Plataforma para usar os certificados.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component agent
Exemplo de Saída:
[oracle@ocne-worker ~]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component agent * olcne-agent.service - Agent for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-agent.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-agent.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 11:13:58 GMT; 2s ago Main PID: 66500 (olcne-agent) Tasks: 8 (limit: 203120) Memory: 7.1M CGroup: /system.slice/olcne-agent.service `-66500 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/produc... May 11 11:13:58 ocne-control systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. May 11 11:13:58 ocne-control olcne-agent[66500]: time=11/05/22 11:13:58 level=info msg=Started server on[::]:8090
Criar um Arquivo de Configuração de CLI da Plataforma
Os administradores podem usar um arquivo de configuração para simplificar a criação e o gerenciamento de ambientes e módulos. O arquivo de configuração, gravado em uma sintaxe YAML válida, inclui todas as informações sobre os ambientes e módulos a serem criados. O uso de um arquivo de configuração salva entradas repetidas de opções de comando da CLI do Platform.
Durante a implantação do laboratório, um arquivo de configuração é gerado automaticamente e está pronto para ser usado no exercício. Mais informações sobre a criação manual de um arquivo de configuração estão na documentação em Using a Configuration File.
-
(Em ocne-operator) Exiba o conteúdo do arquivo de configuração.
cat ~/myenvironment.yaml
Criar o Ambiente e o Módulo Kubernetes
-
(Em ocne-operator) Crie o ambiente.
cd ~ olcnectl environment create --config-file myenvironment.yaml
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created.
-
(No ocne-operator) Crie o módulo Kubernetes.
olcnectl module create --config-file myenvironment.yaml
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully.
-
(No ocne-operator) Valide o módulo Kubernetes.
olcnectl module validate --config-file myenvironment.yaml
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.
Neste exemplo, não há erros de validação. Se houver erros, os comandos necessários para corrigir os nós serão fornecidos como saída desse comando.
-
(No ocne-operator) Instale o módulo Kubernetes.
olcnectl module install --config-file myenvironment.yaml
A implantação do Kubernetes nos nós pode levar alguns minutos para ser concluída.
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully.
-
(No ocne-operator) Valide a implantação do módulo Kubernetes.
olcnectl module instances --config-file myenvironment.yaml
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module instances --config-file myenvironment.yaml INSTANCE MODULE STATE mycluster kubernetes installed ocne-control.pub.linuxvirt.oraclevcn.com:8090 node installed ocne-worker.pub.linuxvirt.oraclevcn.com:8090 node installed
Configurar kubectl
-
(Em ocne-control) Configure o comando
kubectl
.mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
(Em ocne-control) Verifique se
kubectl
funciona.kubectl get nodes
Exemplo de Saída:
[oracle@ocne-control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control Ready control-plane,master 10m v1.22.8+1.el8 ocne-worker Ready <none> 10m v1.22.8+1.el8
Para Obter Mais Informações
- Documentação do Oracle Cloud Native Environment
- Treinamento em Ambiente Nativo do Oracle Cloud
- Assinatura de Aprendizagem do Oracle Linux
- Conteúdo Programático do Oracle Linux
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Deploy Oracle Cloud Native Environment
F49686-05
May 2022
Copyright © 2022, Oracle and/or its affiliates.