Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del tuo ambiente cloud.
Distribuisci ambiente nativo Oracle Cloud
Introduzione
Oracle Cloud Native Environment è una suite completamente integrata per lo sviluppo e la gestione di applicazioni cloud native. Il modulo Kubernetes è il modulo principale. Viene utilizzato per distribuire e gestire i container e anche per installare e configurare automaticamente i contenitori CRI-O, runC e Kata. CRI-O gestisce il runtime dei container per un cluster Kubernetes. Il runtime può essere runC o Kata Containers.
Obiettivi
Questo laboratorio offre una dimostrazione su come:
- Installare Oracle Cloud Native Environment Release 1.5 su un cluster a 3 nodi
- Configurare i certificati CA privati x.590
- Configurare l'ambiente nativo Oracle Cloud su un cluster a 3 nodi
- Verifica dell'installazione completata
Prerequisiti
In questa sezione vengono elencati i sistemi host per eseguire i passi di questa esercitazione. Per avere successo è necessario:
-
3 sistemi Oracle Linux da usare come:
- Nodo operatore (ocne-operator)
- Nodo del piano di controllo Kubernetes (controllo-ocne)
- Nodo di lavoro Kubernetes (ocne-worker)
-
Ogni sistema deve avere almeno i seguenti sistemi installati:
- L'ultima versione di Oracle Linux 8 (x86_64) installata ed esecuzione del kernel Unbreakable Enterprise Kernel Release 6 (UEK R6)
-
Questo ambiente è preconfigurato con i seguenti elementi:
- È stato creato un account utente Oracle (utilizzato durante l'installazione)
- Concessa l'accesso 'sudo' all'account Oracle
- Impostare SSH basato su chiavi, noto anche come SSH senza password, tra le istanze
Imposta ambiente laboratorio
Nota: quando si utilizza l'ambiente di laboratorio gratuito, vedere Oracle Linux Lab Basics per le connessioni e altre istruzioni d'uso.
Questo laboratorio coinvolge più sistemi, ognuno dei quali richiede fasi diverse. Si consiglia di iniziare aprendo tre finestre di terminale e collegandosi ai nodi ocne-operator, ocne-control e ocne-worker. Ciò evita la necessità di eseguire ripetutamente il login e il logout.
-
Aprire un terminale e connettersi tramite ssh a ciascuno dei tre nodi.
ssh oracle@<ip_address_of_ol_node>
Nota Quando un passo indica "(su tutti i nodi)" nel laboratorio, eseguire tali azioni su ocne-operator, ocne-control e ocne-worker. Il motivo di questo approccio è quello di evitare la ripetizione, perché l'azione richiesta sarà identica su ogni nodo.
(Opzionale) Aggiornamento di Oracle Linux
-
(Su tutti i nodi) Assicurarsi che Oracle Linux sia aggiornato.
sudo dnf -y update
Il completamento di questa operazione potrebbe richiedere alcuni minuti. È possibile risparmiare tempo se questo passo viene eseguito in parallelo su ogni nodo separatamente.
-
(Su tutti i nodi) Eseguire il reboot e riconnettersi.
sudo reboot
-
(Su tutti i nodi) Dopo il reboot del sistema, riconnettersi ai nodi tramite ssh.
ssh oracle@<ip_address_of_ol_node>
Installare e abilitare il repository Yum dell'ambiente nativo Oracle Cloud
-
(Su tutti i nodi) Installare il repository yum.
sudo dnf -y install oracle-olcne-release-el8
-
(Su tutti i nodi) Abilita il repository dell'ambiente nativo Oracle Cloud corrente.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_UEKR6
-
(In tutti i nodi) Disabilita tutte le versioni precedenti del repository.
sudo dnf config-manager --disable ol8_olcne12 ol8_olcne13 ol8_olcne14 ol8_developer
Installa e abilita Chrony
-
(Su tutti i nodi) Se non è già disponibile nel sistema, installare e abilitare il servizio chrony.
Controllare se è installato chrony.
sudo dnf list --installed chrony
Se non è installato, installare chrony.
sudo dnf -y install chrony sudo systemctl enable --now chronyd
Nota: l'ambiente di laboratorio gratuito dispone già del servizio cronico (tempo) installato e configurato.
Disabilita swap
-
(Su tutti i nodi) Disabilitare lo swap su tutti i nodi.
sudo swapoff -a sudo sed -i '/swap/ s/^#*/#/' /etc/fstab
Configurare il firewall Oracle Linux
Nota: il servizio firewall è installato e in esecuzione per impostazione predefinita su Oracle Linux.
-
(In ocne-operator) Impostare le regole firewall per il nodo operatore.
sudo firewall-cmd --add-port=8091/tcp --permanent sudo firewall-cmd --reload
-
In ocne-control impostare le regole firewall per i nodi del piano di controllo.
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
-
(In ocne-control) Aggiungere gli elementi seguenti utilizzati per l'alta disponibilità e necessari per superare la convalida.
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
-
In ocne-worker, impostare le regole firewall per i nodi di lavoro.
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
Carica modulo filtro bridge
-
(In ocne-control e ocne-worker) Abilitare e caricare il modulo.
sudo modprobe br_netfilter sudo sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'
Impostazione del nodo operatore
Il nodo operatore esegue e gestisce la distribuzione di ambienti, inclusa la distribuzione del cluster Kubernetes. Un nodo operatore può essere un nodo nel cluster Kubernetes o un host separato, ad esempio in questa esercitazione. Installare Oracle Cloud Native Environment Platform CLI, il server API di piattaforma e le utility sul nodo operatore.
-
(su ocne-operator) installare l'interfaccia CLI della piattaforma, il server API della piattaforma e le utility.
sudo dnf -y install olcnectl olcne-api-server olcne-utils
-
(In ocne-operator) Abilitare il servizio
olcne-api-server
, ma non avviarlo.sudo systemctl enable olcne-api-server.service
Impostazione dei nodi Kubernetes
Il piano di controllo e i nodi di lavoro Kubernetes contengono i package di agenti e utility della piattaforma dell'ambiente nativa di Oracle Cloud.
-
In ocne-control e ocne-worker, installare il pacchetto e le utility Platform Agent.
sudo dnf -y install olcne-agent olcne-utils
-
In ocne-control e ocne-worker abilitare
olcne-agent
(ma non avviarlo).sudo systemctl enable olcne-agent.service
I passi precedenti completano l'impostazione iniziale e l'installazione software per ciascun nodo.
(Opzionale) Configurazione server proxy
Se si utilizza un server proxy, configurarlo con CRI-O su ciascun nodo Kubernetes.
Nota: non è richiesto nell'ambiente di laboratorio gratuito.
-
(Su tutti i nodi) Creare il servizio CRIO.
sudo mkdir /etc/systemd/system/crio.service.d
-
(Su tutti i nodi) Aprire il file di configurazione proxy con vi e impostarlo sulla modalità di inserimento.
sudo vi /etc/systemd/system/crio.service.d/proxy.conf
-
(Su tutti i nodi) Sostituire i valori proxy appropriati per quelli nell'ambiente utilizzando il file di esempio riportato di seguito.
[Service] Environment="HTTP_PROXY=proxy.example.com:80" Environment="HTTPS_PROXY=proxy.example.com:80" Environment="NO_PROXY=.example.com,192.0.2.*"
Impostare i certificati CA privati X.509
Utilizzare lo script /etc/olcne/gen-certs-helper.sh
fornito per generare una CA privata e certificati per i nodi. Eseguire lo script dalla directory /etc/olcne
sul nodo operatore, salvando i file di certificato nella directory corrente.
-
In ocne-operator creare i certificati 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
Fornire le informazioni sulla CA privata utilizzando le opzioni
--cert-request*
. Alcune di queste opzioni esistono nell'esempio. Eseguire il comandogen-certs-helper.sh --help
per ottenere un elenco completo delle opzioni.--cert-request-common-name
: fornire il nome di dominio DNS (Domain Name System) appropriato per l'ambiente in uso.--nodes
: fornire il nome dominio completamente qualificato (FQDN) dei nodi operatore, piano di controllo e di lavoro.
Trasferire i certificati CA privati X.509
Dopo aver generato i certificati, copiarli in ogni nodo.
-
(In ocne-operator) Aggiornare i dettagli utente nello script di trasferimento fornito.
sudo sed -i 's/USER=opc/USER=oracle/g' configs/certificates/olcne-tranfer-certs.sh
L'esercitazione richiede questo passo perché l'utente predefinito dello script è
opc
. Dopo aver installato il prodotto utilizzando l'utenteoracle
, aggiornare di conseguenza la variabileUSER
all'interno dello script. -
(In ocne-operator) Impostare le autorizzazioni per ogni node.key generato dallo script di creazione del certificato.
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
-
In ocne-operator trasferire gli script su ciascun nodo.
Questo passo richiede la configurazione SSH senza password tra i nodi. Questa configurazione è esterna all'ambito di questa esercitazione, ma è preconfigurata nell'ambiente di laboratorio gratuito.
bash -ex /etc/olcne/configs/certificates/olcne-tranfer-certs.sh
-
(In tutti i nodi) Verificare che i file siano stati copiati correttamente.
sudo -u olcne ls /etc/olcne/configs/certificates/production
Output di esempio:
[oracle@ocne-control ~]$ sudo -u olcne ls /etc/olcne/configs/certificates/production ca.cert node.cert node.key
Impostare i certificati X.509 per il servizio Kubernetes externalIPs
Il servizio Kubernetes externalip-validation-webhook-service
richiede l'impostazione dei certificati X.509 prima della distribuzione di Kubernetes.
-
(In ocne-operator) Generare i certificati.
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-*
: questa opzione utilizza il certificato e la chiave CA creati in precedenza.
-
(In ocne-operator) Impostare le autorizzazioni per la directory contenente node.key generato dallo script di creazione del certificato.
sudo chown -R oracle:oracle /etc/olcne/configs/certificates/restrict_external_ip/
Eseguire il bootstrap del server API della piattaforma
-
(In ocne-operator) Eseguire lo script bootstrap per configurare il server API della piattaforma per l'utilizzo dei certificati.
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
Output di esempio:
[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
- In alternativa, è possibile utilizzare i certificati gestiti da HashiCorp Vault. L'utilizzo di tale metodo non è incluso in questa esercitazione.
-
(In ocne-operator) Verificare che il server API della piattaforma sia in esecuzione.
sudo systemctl status olcne-api-server
Output di esempio:
[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 ...
-
(In ocne-operator) Premere 'q' per uscire dal processo e passare al passo successivo.
Bootstrap degli agenti della piattaforma
-
(In ocne-control e ocne-worker) Eseguire lo script bootstrap per configurare l'agente della piattaforma per l'utilizzo dei certificati.
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
Output di esempio:
[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
Creare un file di configurazione CLI della piattaforma
Gli amministratori possono utilizzare un file di configurazione per semplificare la creazione e la gestione di ambienti e moduli. Il file di configurazione, scritto con sintassi YAML valida, include tutte le informazioni relative agli ambienti e ai moduli da creare. L'uso di un file di configurazione salva le voci ripetute delle opzioni di comando CLI della piattaforma.
Durante la distribuzione del laboratorio, viene generato automaticamente un file di configurazione e pronto per l'uso nell'esercizio. Per ulteriori informazioni sulla creazione manuale di un file di configurazione, consultare la documentazione all'indirizzo Using a Configuration File.
-
(In ocne-operator) visualizzare il contenuto del file di configurazione.
cat ~/myenvironment.yaml
Creare l'ambiente e il modulo Kubernetes
-
(su ocne-operator) creare l'ambiente.
cd ~ olcnectl environment create --config-file myenvironment.yaml
Output di esempio:
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created.
-
In ocne-operator, creare il modulo Kubernetes.
olcnectl module create --config-file myenvironment.yaml
Output di esempio:
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully.
-
(In ocne-operator) convalidare il modulo Kubernetes.
olcnectl module validate --config-file myenvironment.yaml
Output di esempio:
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.
In questo esempio non sono presenti errori di convalida. In caso di errori, i comandi necessari per correggere i nodi vengono forniti come output di questo comando.
-
In ocne-operator installare il modulo Kubernetes.
olcnectl module install --config-file myenvironment.yaml
Il completamento della distribuzione di Kubernetes sui nodi potrebbe richiedere alcuni minuti.
Output di esempio:
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully.
-
In ocne-operator, convalidare la distribuzione del modulo Kubernetes.
olcnectl module instances --config-file myenvironment.yaml
Output di esempio:
[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
Imposta kubectl
-
(In ocne-control) Impostare il 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
-
(In ocne-control) Verificare il funzionamento di
kubectl
.kubectl get nodes
Output di esempio:
[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
Ulteriori informazioni
- Documentazione su Oracle Cloud Native Environment
- Formazione per Oracle Cloud Native Environment
- Sottoscrizione al corso di formazione su Oracle Linux
- Curriculum Oracle Linux
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di apprendimento gratuito sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare il sito Oracle Help Center.
Deploy Oracle Cloud Native Environment
F49691-05
May 2022
Copyright © 2022, Oracle and/or its affiliates.