Nota:

Distribuire la soluzione di monitoraggio su cluster OKE privati utilizzando Oracle Cloud Infrastructure Resource Manager

Introduzione

Oracle Cloud offre una soluzione di monitoraggio complementare per le implementazioni di Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE), utilizzando Oracle Cloud Infrastructure (OCI) Logging Analytics. Questa soluzione è disponibile nella documentazione e può essere implementata come distribuzione di Resource Manager Terraform disponibile su GitHub. Tuttavia, questa soluzione viene destinata ai cluster OKE con gli endpoint delle API pubbliche.

Se si tenta la stessa distribuzione su un cluster OKE privato, la distribuzione non riesce a causa di problemi di connettività di rete, poiché i job di Resource Manager OCI vengono eseguiti in una tenancy del servizio. In questa situazione è possibile utilizzare gli endpoint privati di Resource Manager OCI, ma è necessario apportare alcune modifiche al codice Terraform per poter eseguire la distribuzione di Helm.

Utilizzo degli endpoint privati

Obiettivi

Supponendo di aver già creato un cluster OKE privato (tutti i componenti cluster posizionati in subnet private), a questo punto la distribuzione della soluzione Logging Analytics sopra riportata tramite OCI Resource Manager non riuscirà con il seguente errore:

Error: Kubernetes cluster unreachable: Get "https://192.0.2.1:6443/version": dial tcp 192.0.2.1:6443: i/o timeout
  with module.helm_release.helm_release.oci-kubernetes-monitoring[0],
  on modules/helm/helm.tf line 11, in resource "helm_release" "oci-kubernetes-monitoring"
  11: resource "helm_release" "oci-kubernetes-monitoring"

In questo caso, l'IP 192.0.2.1 è l'IP dell'endpoint privato OKE non raggiungibile da Resource Manager OCI.

Per superare questo problema, è necessario effettuare le seguenti operazioni supplementari:

Prerequisiti

Task 1: Crea endpoint privato di Resource Manager

Per questo task, puoi seguire questi passi per creare un nuovo endpoint privato per Resource Manager OCI dalla console OCI. Assicurarsi di selezionare la VCN e la subnet dell'endpoint API privato del cluster OKE.

In questo modo, il cluster OKE viene mappato a questo endpoint privato di Resource Manager OCI, ma non è ancora raggiungibile dall'esterno.

Endpoint privato di OCI Resource Manager

Task 2: aggiungere una regola di entrata nella lista di sicurezza della subnet privata

Regola di entrata SL

Aggiungere una regola di entrata alla lista di sicurezza della subnet dell'endpoint API privato per consentire il traffico dall'endpoint privato di OCI Resource Manager. L'IP raggiungibile dell'endpoint privato di Resource Manager OCI è un IP di classe E, pertanto il CIDR 240.0.0.0/4 coprirà questo aspetto.

Assicurati di controllare le altre regole, l'entrata e l'uscita, siano conformi ai suggerimenti OCI.

Task 3: apportare modifiche al codice Terraform

Per utilizzare questo nuovo IP raggiungibile dell'endpoint privato creato nei passi precedenti, è necessario modificare il file /modules/helm/provider.tf dallo stack.

Includere il blocco di origine dati riportato di seguito che fornisce l'indirizzo IP raggiungibile alternativo della risorsa privata. Questo IP verrà utilizzato dal servizio Resource Manager OCI per connettersi alla risorsa privata.

data "oci_resourcemanager_private_endpoint_reachable_ip" "test_private_endpoint_reachable_ip" {
    #Required
    private_endpoint_id = "ocid1.ormprivateendpoint.oc1....."
    private_ip = "192.0.2.1"
}

locals {
  // following locals are set as "place-holder" when user opts out of helm release
  cluster_endpoint       = "https://${data.oci_resourcemanager_private_endpoint_reachable_ip.test_private_endpoint_reachable_ip.ip_address}:6443"  
  ...
}

Task 4: Errore risoluzione certificati

Dopo le modifiche precedenti, l'applicazione del codice farà avanzare, ma in seguito non riuscirà a causa del certificato TLS dell'endpoint API, poiché l'indirizzo IP raggiungibile dell'endpoint privato OKE non è incluso nel certificato OKE.

module.helm_release.helm_release.oci-kubernetes-monitoring[0]: Creating...
Error: Kubernetes cluster unreachable: Get "https://255.x.y.0:6443/version": x509: certificate is valid for 192.0.2.1, 192.0.2.2, 192.0.2.3, 127.0.0.1, not 255.x.y.0

Ciò può essere evitato eliminando la verifica del certificato dal codice con le seguenti due impostazioni:

Approvazioni

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.

Per la documentazione sul prodotto, visitare il sito Oracle Help Center.