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.
Usar Instalação Rápida para Implantar o Oracle Cloud Native Environment
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. Ele é usado para implantar e gerenciar contêineres e também instala e configura automaticamente os Contêineres CRI-O, runC e Kata. O CRI-O gerencia o runtime do contêiner para um cluster do Kubernetes. O runtime pode ser Contêineres runC ou Kata.
O Oracle Cloud Native Environment Release 1.5.7 introduziu a capacidade de usar a CLI do Oracle Cloud Native Environment Platform para executar uma instalação rápida de si mesmo. Isso é feito usando o comando olcnectl provision em um host de instalação (o nó operador). O comando olcnectl provision pode executar as seguintes operações nos nós de destino:
- Gerar Certificados CA.
- Copie os Certificados CA para cada nó.
- Configure o sistema operacional em cada nó, incluindo as portas de rede.
- Instale os pacotes de software do Oracle Cloud Native Environment em cada nó.
- Inicie os serviços de plataforma do Oracle Cloud Native Environment (Platform API Server e Platform Agent).
- Crie um Oracle Cloud Native Environment.
- Crie, valide e instale um módulo do Kubernetes, que cria o cluster do Kubernetes.
- Configure os certificados de Plataforma como
~./olcne
no nó operador para acessar o ambiente usando o comando olcnectl.
Este tutorial descreve como executar uma instalação rápida usando a série mais simples de etapas possíveis para instalar o Oracle Cloud Native Environment e um cluster do Kubernetes. Este tutorial usa certificados de CA privados. É recomendável para um ambiente de produção usar seus próprios Certificados CA.
As topologias de instalação mais complexas podem ser obtidas gravando seu próprio arquivo de configuração do Oracle Cloud Native Environment e, em seguida, passando-o para o comando olcnectl provision usando a opção -config-file. Para obter mais informações sobre as opções de sintaxe fornecidas pelo comando olcnectl provision e também sobre como gravar um arquivo de configuração, consulte o guia Platform Command-Line Interface.
Objetivos
Este laboratório demonstra como:
- Efetuar uma instalação rápida do Oracle Cloud Native Environment
- Configurar um host com a CLI da Plataforma (olcnectl) no nó operador
- Use o comando olcnectl provision para executar uma instalação rápida
- Instalar o Oracle Cloud Native Environment Release 1.5 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 para usar como:
- Nó do operador (ocne-operator)
- Nó do plano de controle do 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:
- Uma conta de usuário oracle (usada durante a instalação) com acesso sudo
- SSH baseado em chave, também conhecido como SSH sem senha, entre os hosts
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. A maioria das operações será iniciada no nó ocne-operator; portanto, é recomendável abrir uma janela de terminal para esse nó como no mínimo.
-
Abra um terminal e conecte-se via ssh a cada nó.
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) Fazer Upgrade para o Unbreakable Enterprise Kernel 7 (UEK7)
O Oracle Cloud Native Environment Release 1.5.7 introduziu o suporte para o Oracle Linux 8 Unbreakable Enterprise Kernel 7, de modo que as etapas a seguir mostram como fazer upgrade para esta nova versão do kernel. As etapas a seguir descrevem como atualizar o ambiente de Laboratório, que usa o UEK R6 do Oracle Linux 8 Update 6 para o Unbreakable Enterprise Kernel 7 (UEK7).
-
(Em todos os nós) Confirme quais repositórios estão configurados no momento:
dnf repolist
Exemplo de Saída:
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
-
(Em todos os nós) Confirme se o Kernel Enterpriose Inquebrável está instalado
dnf list installed kernel-uek
Exemplo de Saída:
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6
-
(Em todos os nós) Ative o novo Unbreakable Enterprise Kernel e desative o antigo.
sudo dnf config-manager --set-disabled ol8_UEKR6 sudo dnf config-manager --set-enabled ol8_UEKR7
-
(Em todos os nós) Confirme quais novos repositórios do Unbreakable Enterprise Kernel agora estão ativados.
dnf repolist
Exemplo de Saída:
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR7 Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
-
(Em todos os nós) Faça upgrade do ambiente.
sudo dnf -y upgrade kernel-uek
Observação Importante: Isso pode levar alguns minutos para ser concluído; economizará tempo se essa etapa for executada em paralelo em cada nó separadamente.
-
(Em todos os nós) Confirme se o Kernel Enterpriose Inquebrável está instalado
dnf list installed kernel-uek
Exemplo de Saída:
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.15.0-3.60.5.1.el8uek @ol8_UEKR7
-
(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>
-
(Em todos os nós) Confirme se o novo kernel está instalado.
uname -a
Exemplo de Saída:
[oracle@ocne-worker ~]$ uname -a Linux ocne-worker 5.15.0-3.60.5.1.el8uek.x86_64 #2 SMP Wed Oct 19 20:04:48 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
Configurando o Host de Instalação (nó Operador) no Oracle Linux 8
Essas etapas configuram o host do Oracle Linux (nó do operador) para que ele possa ser usado para a instalação rápida do Oracle Cloud Native Environment.
-
(Em ocne-operator) Instale o pacote de versão
oracle-olcne-release-el8
.sudo dnf -y install oracle-olcne-release-el8
-
(No ocne-operator) Ative o repositório atual do Oracle Cloud Native Environment.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR6
Observação Importante: Se você seguiu a etapa (opcional) para fazer upgrade do kernel para UEK7, use este comando:
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR7
-
(Em ocne-operator) Desative todas as versões anteriores do repositório.
sudo dnf config-manager --disable ol8_olcne14 ol8_olcne13 ol8_olcne12 ol8_developer
-
(No ocne-operator) Instale o pacote de software olcnectl.
sudo dnf -y install olcnectl
Realize uma instalação rápida
As etapas a seguir descrevem o método mais rápido para configurar uma implantação básica do Oracle Cloud Native Environment e instalar um cluster do Kubernetes. Ele requer um mínimo de três nós, que são:
- Nó Operador Usa a CLI da Plataforma (olcnectl) para executar a instalação e também hospedar o Servidor de API da Plataforma.
- Plano de controle do Kubernetes Requer pelo menos um nó para usar como um nó do plano de controle do Kubernetes.
- Kuberbetes worker Requer pelo menos um nó para ser usado como um nó de trabalho do Kubernetes.
-
(Em ocne-operator) Use o comando olcnectl provision para iniciar a instalação.
olcnectl provision \ --api-server ocne-operator \ --master-nodes ocne-control \ --worker-nodes ocne-worker \ --environment-name myenvironment \ --name mycluster
Observação Importante: Esta operação pode levar de 10 a 15 minutos para ser concluída e não haverá uma indicação visível de que algo ocorra até que ela termine.
Onde:
- -api-server - o FQDN do nó em que a API da Plataforma deve ser configurada.
- -master-nodes - o FQDN dos nós que será configurado com o Agente da Plataforma e designado à atribuição do plano de controle do Kubernetes. Se houver mais de um nó, ele deverá ser uma lista separada por vírgulas.
- -worker-nodes - o FQDN dos nós que serão configurados com o Agente da Plataforma e designada à atribuição de colaborador do Kubernetes. Se houver mais de um nó, ele deverá ser uma lista separada por vírgulas.
- -environment-name - usado para identificar o ambiente.
- -name - usado para definir o nome do módulo Kubernetes.
Observação Ao executar este comando, é exibido um prompt que lista as alterações a serem feitas nos hosts e solicita confirmação. Para evitar esse prompt, use a opção
--yes
. Esta opção define o comando olcnectl provision para assumir que a resposta a qualquer prompt de confirmação é afirmativa (sim).Saída de Exemplo: Isso mostra uma saída de exemplo quando a chave de comando
--yes
não é usada:[oracle@ocne-operator ~]$ olcnectl provision --api-server ocne-operator --master-nodes ocne-control --worker-nodes ocne-worker --environment-name myenvironment --name mycluster INFO[31/10/22 11:31:35] Generating certificate authority INFO[31/10/22 11:31:35] Generating certificate for ocne-operator INFO[31/10/22 11:31:35] Generating certificate for ocne-control INFO[31/10/22 11:31:35] Generating certificate for ocne-worker INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.key" to "/etc/olcne/certificates/node.key" on ocne-operator INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-control The authenticity of host 'ocne-control (10.0.0.151)' can't be established. ECDSA key fingerprint is SHA256:NzPd6SBTbrcEgHoaYHY2bnDB357dfPysBXkJLuMVT98. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:49] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-control INFO[31/10/22 11:31:49] Copying local file at "certificates/ocne-control/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-control INFO[31/10/22 11:31:50] Copying local file at "certificates/ocne-control/node.key" to "/etc/olcne/certificates/node.key" on ocne-control INFO[31/10/22 11:31:50] Creating directory "/etc/olcne/certificates/" on ocne-worker The authenticity of host 'ocne-worker (10.0.0.152)' can't be established. ECDSA key fingerprint is SHA256:FV6mTb92EBzV2SRYsdDFfNVYhlJe5s9rWBTPWgAL6VU. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:53] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-worker INFO[31/10/22 11:31:53] Copying local file at "certificates/ocne-worker/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-worker INFO[31/10/22 11:31:54] Copying local file at "certificates/ocne-worker/node.key" to "/etc/olcne/certificates/node.key" on ocne-worker ? Apply api-server configuration on ocne-operator: * Install oracle-olcne-release * Enable olcne15 repo * Install API Server Add firewall port 8091/tcp Proceed? yes/no(default) yes ? Apply control-plane configuration on ocne-control: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp 6443/tcp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes ? Apply worker configuration on ocne-worker: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes INFO[31/10/22 11:41:48] Kubeconfig for instance "mycluster" in environment "myenvironment" written to kubeconfig.myenvironment.mycluster
-
(No ocne-operator) A plataforma Oracle Cloud Native Environment e o software de cluster do Kubernetes agora estão instalados e configurados em todos os nós. Isso pode ser confirmado usando o seguinte:
olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironment
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module instances --api-server ocne-operator:8091 --environment-name myenvironment INSTANCE MODULE STATE ocne-worker:8090 node installed mycluster kubernetes installed ocne-control:8090 node installed
-
(No ocne-operator) Para evitar ter que usar o flag
--api-server
em comandos olcnectl futuros, execute o comando anterior novamente adicionando o flag--update-config
.olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironment \ --update-config
-
(Em ocne-operator) Informações mais detalhadas relacionadas à implantação podem ser obtidas usando o comando olcnectl module report.
olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children \ --format yaml
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children --format yaml Environments: myenvironment: ModuleInstances: - Name: mycluster Properties: - Name: kubectl - Name: cloud-provider - Name: kubecfg Value: file exist ... - Name: kubecfg Value: file exist - Name: selinux Value: permissive - Name: swap Value: "off"
Observação: É possível alterar a saída para retornar essa saída em um formato de Tabela. No entanto, isso requer que a Codificação do aplicativo Terminal seja definida como
UTF-8
(Defina o seguinte no menu do aplicativo Terminal:Terminal -> Set Encoding -> Unicode -> UTF-8
). Em seguida, execute o comando novamente sem a opção--format yaml
.olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children
Exemplo de Saída:
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children ╭─────────────────────────────────────────────────────────────────────┬─────────────────────────╮ │ myenvironment │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ mycluster │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ Property │ Current Value │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ podnetworking │ running │ │ status_check │ healthy │ │ cloud-provider │ │ │ kubecfg │ file exist │ │ externalip-webhook │ uninstalled │ │ extra-node-operations │ │ │ extra-node-operations-update │ running │ │ kubectl │ │ │ master:ocne-control:8090 │ │ │ worker:ocne-worker:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ ocne-control:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ ... ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ networking │ active │ │ swap │ off │ │ kubecfg │ file exist │ ╰─────────────────────────────────────────────────────────────────────┴─────────────────────────╯
Configurar o 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 o 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 26m v1.24.5+1.el8 ocne-worker Ready <none> 25m v1.24.5+1.el8
ou
kubectl get pods --all-namespaces
Exemplo de Saída:
[oracle@ocne-control ~]$ kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-664c775d6f-6gbcc 1/1 Running 0 26m kube-system coredns-664c775d6f-dvht7 1/1 Running 0 26m kube-system etcd-ocne-control 1/1 Running 0 27m kube-system kube-apiserver-ocne-control 1/1 Running 0 27m kube-system kube-controller-manager-ocne-control 1/1 Running 1 (27m ago) 27m kube-system kube-flannel-ds-cv9cl 1/1 Running 0 26m kube-system kube-flannel-ds-cxtz8 1/1 Running 1 (25m ago) 26m kube-system kube-proxy-cbm8s 1/1 Running 0 26m kube-system kube-proxy-rxkhb 1/1 Running 0 26m kube-system kube-scheduler-ocne-control 1/1 Running 0 27m
Isso confirma que o Oracle Cloud Native Environment está configurado e em execução nos três nós.
Para Obter Mais Informações
- Documentação do Oracle Cloud Native Environment
- Treinamento do Oracle Cloud Native Environment
- 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.
Use Quick Install to Deploy Oracle Cloud Native Environment
F74746-01
December 2022
Copyright © 2022, Oracle and/or its affiliates.