Accesso ai cluster Red Hat OpenShift
Una volta che il tuo cluster Red Hat® OpenShift® on IBM Cloud® è stato creato, puoi iniziare a utilizzarlo effettuando l'accesso.
Prerequisiti
- Installa gli strumenti CLI richiesti. Per un rapido accesso alle funzioni di test nel tuo cluster, puoi anche utilizzare IBM Cloud Shell.
- Crea il tuo cluster Red Hat OpenShift.
- Se la tua rete è protetta da un firewall aziendale, consenti l'accesso agli endpoint API e alle porte di IBM Cloud e Red Hat OpenShift on IBM Cloud. Per i cluster VPC con solo l'endpoint del servizio cloud privato abilitato, non puoi verificare la connessione al tuo cluster finché non configuri una VPN VPC con la sottorete dell'endpoint del servizio cloud.
- Per verificare che il cluster sia in uno stato di salute, eseguire
ibmcloud oc cluster get -c <cluster_name_or_ID>
. Se il tuo cluster non è in uno stato integro, riesamina la guida Debug dei cluster per assistenza. Ad esempio, se il provisioning del tuo cluster viene eseguito in un account che è protetto da un'applicazione gateway firewall, devi configurare le impostazioni del tuo firewall per consentire il traffico in uscita alle porte e agli indirizzi IP appropriati. - Trova l'endpoint del servizio del cluster.
- Cluster classici o VPC: nell'output dei dettagli del cluster dal passaggio precedente, controllare l' URL dell'endpoint del servizio pubblico o privato del cluster.
- Solo Endpoint del servizio pubblico URL: Continuare con Accesso ai cluster tramite l'endpoint del servizio cloud pubblico.
- Entrambi gli URL dell'endpoint del servizio: puoi accedere al tuo cluster tramite l'endpoint del servizio pubblico o privato.
- ClusterIBM Cloud Satellite: continua con l'accesso ai cluster su Satellite.
- Cluster classici o VPC: nell'output dei dettagli del cluster dal passaggio precedente, controllare l' URL dell'endpoint del servizio pubblico o privato del cluster.
- Se gli utenti nel tuo account utilizzano l'autenticazione multifattore (MFA) come TOTP, assicurati di abilitarla per tutti gli utenti a livello dell'account. Per utilizzare MFA, deve essere abilitato a livello di account per evitare errori di autenticazione.
Accesso ai cluster attraverso l'endpoint del servizio di cloud pubblico
Per i cluster Red Hat OpenShift con un endpoint di servizio cloud pubblico, è possibile accedere al cluster dalla console o dalla CLI.
Connessione al cluster dalla console
Puoi accedere rapidamente al tuo cluster Red Hat OpenShift on IBM Cloud dalla console.
- Nella console, fare clic sul cluster a cui si desidera accedere.
- Fare clic su Red Hat OpenShift web console.
- Per continuare a lavorare alla riga di comando, fare clic sul nome del profilo, ad esempio
IAM#name@email.com
, quindi fare clic su Copia comando di accesso. A seconda della versione del cluster, accedere al cluster dalla riga di comando come segue.- Versione 4: fare clic su Display Token, copiare il comando
oc login
e incollarlo nella riga di comando.
- Versione 4: fare clic su Display Token, copiare il comando
Per motivi di sicurezza, esci prima dalla console web IBM Cloud e poi dalla console web Red Hat OpenShift prima di chiudere il browser. Devi completare entrambi i passi nell'ordine specificato per scollegarti correttamente dalla console web Red Hat OpenShift.
- Operazioni successive
- Prova Distribuzione delle applicazioni tramite la console.
Connessione al cluster dalla CLI
Di solito, si può usare la console web Red Hat OpenShift per ottenere il token oc login
per accedere al cluster. Se non puoi o non vuoi aprire la console Red Hat OpenShift, scegli tra le seguenti opzioni per accedere al tuo cluster
Red Hat OpenShift on IBM Cloud utilizzando la CLI.
Scegli dalle seguenti opzioni.
- Accedi come admin:
- Assicurarsi di avere il ruolo di accesso alla piattaforma Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster e scaricare i certificati TLS e i file di autorizzazione per l'amministratore.
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
- Accedere con una chiave API: Vedere Utilizzo di una chiave API per accedere a Red Hat OpenShift.
- Accedi con il passcode IBM Cloud:
- Ottieni l'URL master del tuo cluster nell'output del seguente comando.
ibmcloud oc cluster get -c <cluster_name_or_ID>
- Nel tuo browser, apri il seguente sito web del passcode IBM Cloud IAM.
https://iam.cloud.ibm.com/identity/passcode
- Accedi con il tuo ID IBM e copia il passcode.
- Accedi al tuo cluster con il passcode.
oc login -u passcode -p <iam_passcode> --server=<master_URL>
- Ottieni l'URL master del tuo cluster nell'output del seguente comando.
Accesso ai cluster attraverso l'endpoint del servizio di cloud privato
Consenti agli utenti del cluster autorizzati di accedere al tuo cluster VPC o classico attraverso l'endpoint del servizio cloud privato.
Vuoi configurare una VPN per connetterti al tuo cluster dalla macchina locale? Controlla Accesso ai cluster privati utilizzando la VPN WireGuard.
Accesso ai cluster VPC attraverso l'endpoint del servizio di cloud privato
Il master Red Hat OpenShift è accessibile attraverso l'endpoint del servizio cloud privato se gli utenti autorizzati del cluster si trovano nella rete privata IBM Cloud o sono connessi alla rete privata, ad esempio tramite una connessione VPC VPN.
Tuttavia, la comunicazione con il master Kubernetes sull'endpoint del servizio cloud privato deve passare attraverso l'intervallo di indirizzi IP 166.X.X.X
, che devi configurare nel tuo gateway VPN e nella configurazione della
connessione.
-
Configura la tua VPN IBM Cloud VPC e connettiti alla tua rete privata attraverso la VPN.
- Configura un gateway VPN sulla tua macchina locale. Ad esempio, potresti scegliere di configurare StrongSwan sulla tua macchina.
- Crea un gateway VPN nel tuo VPC e crea la connessione tra il gateway VPN VPC e il tuo gateway VPN locale. Nella sezione Nuova connessione VPN per VPC,
aggiungi la sottorete
166.8.0.0/14
al campo Sottoreti locali. Se si dispone di un cluster multizona, ripetere questo passaggio per configurare un gateway VPC su una subnet in ogni zona in cui sono presenti nodi worker. - Verificare di essere connessi alla rete privata attraverso la connessione VPN IBM Cloud VPC.
-
Per accedere al tuo cluster, scegli tra le seguenti opzioni.
- Accedi come admin:
- Assicurarsi di avere il ruolo di accesso alla piattaforma Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster e scaricare i certificati TLS e i file di autorizzazione per l'amministratore.
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
- Accedere con una chiave API: Vedere Utilizzo di una chiave API per accedere a Red Hat OpenShift.
- Accedi con il passcode IBM Cloud:
- Ottenere il Private Service Endpoint URL del proprio cluster nell'output del seguente comando.
ibmcloud oc cluster get -c <cluster_name_or_ID>
- Nel tuo browser, apri il seguente sito web del passcode IBM Cloud IAM.
https://iam.cloud.ibm.com/identity/passcode
- Accedi con il tuo ID IBM e copia il passcode.
- Accedi al tuo cluster con il passcode.
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- Ottenere il Private Service Endpoint URL del proprio cluster nell'output del seguente comando.
- Accedi come admin:
-
Verificare che i comandi di
oc
vengano eseguiti correttamente con il cluster attraverso l'endpoint del servizio di cloud privato, controllando la versione.oc version
Output di esempio
Client Version: 4.5.0-0.okd-2020-09-04-180756 Server Version: 4.5.35 Kubernetes Version: v1.18.3+cdb0358
Accesso ai cluster classici attraverso l'endpoint del servizio di cloud privato
Il master Red Hat OpenShift è accessibile tramite l'endpoint del servizio cloud privato se gli utenti cluster autorizzati si trovano nella tua rete privata IBM Cloud o sono connessi alla rete privata come ad esempio tramite una connessione VPN classica o IBM Cloud Direct Link. Tuttavia, la comunicazione con il master Kubernetes attraverso l'endpoint del servizio di cloud privato deve passare attraverso l'intervallo di indirizzi
IP 166.X.X.X
, che non è instradabile da una connessione VPN classica o attraverso IBM Cloud Direct Link. È possibile esporre l'endpoint del servizio cloud privato del master per gli utenti del cluster utilizzando un bilanciatore
di carico di rete privato (NLB). L'NLB privato espone l'endpoint del servizio cloud privato del master come un intervallo di indirizzi IP interno a 10.X.X.X
a cui gli utenti possono accedere con la connessione VPN o IBM Cloud
Direct Link. Se abiliti solo l'endpoint del servizio cloud privato, puoi utilizzare la console web Red Hat OpenShift per creare l'NLB privato.
-
Accedi al tuo cluster Red Hat OpenShift utilizzando l'endpoint del servizio cloud pubblico.
-
Ottenere l'endpoint del servizio cloud privato URL e la porta del cluster.
ibmcloud oc cluster get -c <cluster_name_or_ID>
In questo output di esempio, l'URL dell'endpoint del servizio privato è
https://c1.private.us-east.containers.cloud.ibm.com:31144
.NAME: setest ID: b8dcc56743394fd19c9f3db7b990e5e3 State: normal Status: healthy cluster Created: 2019-04-25T16:03:34+0000 Location: wdc04 Pod Subnet: 172.30.0.0/16 Service Subnet: 172.21.0.0/16 Master URL: https://c1-e.us-east.containers.cloud.ibm.com:31144 Public Service Endpoint URL: https://c1-e.us-east.containers.cloud.ibm.com:31144 Private Service Endpoint URL: https://c1.private.us-east.containers.cloud.ibm.com:31144 Master Location: Washington D.C. ...
-
Crea un file YAML denominato
oc-api-via-nlb.yaml
. Questo YAML crea un servizioLoadBalancer
privato ed espone l'endpoint del servizio cloud privato attraverso tale NLB. Sostituire<private_service_endpoint_port>
con la porta individuata nel passaggio precedente.apiVersion: v1 kind: Service metadata: name: oc-api-via-nlb annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private namespace: default spec: type: LoadBalancer ports: - protocol: TCP port: <private_service_endpoint_port> targetPort: <private_service_endpoint_port> --- kind: Endpoints apiVersion: v1 metadata: name: oc-api-via-nlb namespace: default subsets: - addresses: - ip: 172.20.0.1 ports: - port: 2040
-
Per creare l'NLB e l'endpoint privati:
- Applica il file di configurazione che hai creato in precedenza.
oc apply -f oc-api-via-nlb.yaml
- Verifica che sia stato creato l'NLB
oc-api-via-nlb
. Nell'output, annota l'indirizzo10.x.x.x
EXTERNAL-IP. Questo indirizzo IP espone l'endpoint del servizio cloud privato per il master del cluster sulla porta specificata nel file YAML.
In questo esempio di output, l'indirizzo IP dell'endpoint del servizio cloud privato del master èoc get svc -o wide
10.186.92.42
.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR oc-api-via-nlb LoadBalancer 172.21.150.118 10.186.92.42 443:32235/TCP 10m <none> ...
- Applica il file di configurazione che hai creato in precedenza.
-
Sui computer client dove voi o i vostri utenti eseguite i comandi
oc
, aggiungete l'indirizzo IP di NLB e l'endpoint del servizio cloud privato URL al file/etc/hosts
. Non includere alcuna porta nell'indirizzo IP e in URL e non includerehttps://
in URL.-
Per gli utenti di macOS e Linux:
sudo nano /etc/hosts
-
Per gli utenti Windows:
notepad C:\Windows\System32\drivers\etc\hosts
A seconda delle autorizzazioni della tua macchina locale, potresti dover eseguire Blocco note come amministratore, per modificare il file degli host.
Testo di esempio da aggiungere:
10.186.92.42 c1.private.us-east.containers.cloud.ibm.com
-
-
Verifica di essere connesso alla rete privata tramite una connessione VPN o IBM Cloud Direct Link.
-
Accedi al tuo cluster scegliendo una delle seguenti opzioni.
- Accedi come admin:
- Assicurarsi di avere il ruolo di accesso alla piattaforma Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster e scaricare i certificati TLS e i file di autorizzazione per l'amministratore.
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
- Accedere con una chiave API: Vedere Utilizzo di una chiave API per accedere a Red Hat OpenShift.
- Accedi con il passcode IBM Cloud:
- Ottenere il Private Service Endpoint URL del proprio cluster nell'output del seguente comando.
ibmcloud oc cluster get -c <cluster_name_or_ID>
- Nel tuo browser, apri il seguente sito web del passcode IBM Cloud IAM.
https://iam.cloud.ibm.com/identity/passcode
- Accedi con il tuo ID IBM e copia il passcode.
- Accedi al tuo cluster con il passcode.
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- Ottenere il Private Service Endpoint URL del proprio cluster nell'output del seguente comando.
- Accedi come admin:
-
Verificare che i comandi di
oc
vengano eseguiti correttamente con il cluster attraverso l'endpoint del servizio di cloud privato, controllando la versione.oc version
Output di esempio
Client Version: 4.5.0-0.okd-2020-09-04-180756 Server Version: 4.5.35 Kubernetes Version: v1.18.3+cdb0358
Accesso ai cluster Red Hat OpenShift su Satellite
Dopo aver creato un cluster Red Hat OpenShift nell'ubicazione Satellite, puoi iniziare a lavorare con il tuo cluster accedendo al cluster.
Quando accedi al tuo cluster ed esegui i comandi oc get nodes
o oc describe node <worker_node>
, potresti vedere che ai nodi di lavoro sono assegnati i ruoli master,worker
. Nei cluster OpenShift Container
Platform, gli operatori utilizzano il ruolo master come nodeSelector
in modo che OCP possa distribuire i componenti predefiniti controllati dagli operatori, come il registro interno, nel cluster. Gli host Satellite che hai assegnato
al tuo cluster funzionano solo come nodi di lavoro e nessun processo del nodo master, come il server API o il programma di pianificazione Kubernetes, viene eseguito sui tuoi nodi di lavoro.
Accesso ai cluster attraverso il servizio cluster URL
Collegarsi al cluster attraverso il servizio URL. Questo URL è uno dei sottodomini della posizione Satellite e una porta del nodo, formattata come https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710
.
Se i tuoi host di ubicazione hanno solo connettività di rete privata o se utilizzi Amazon Web Services, Google Cloud Platform e gli host Microsoft Azure, devi essere connesso alla rete privata dei tuoi host, ad esempio tramite l'accesso VPN, per connetterti al tuo cluster e accedere alla console web Red Hat OpenShift. In alternativa, se i tuoi host hanno la connettività di rete pubblica, puoi verificare l'accesso al tuo cluster modificando i record DNS del tuo cluster e della tua ubicazione in modo da utilizzare gli indirizzi IP pubblici dei tuoi host.
Puoi accedere rapidamente al tuo cluster Red Hat OpenShift on IBM Cloud dalla console.
- Nella console, fare clic sul cluster a cui si desidera accedere.
- Fare clic su Red Hat OpenShift web console.
- Fare clic sul nome del proprio profilo, ad esempio
IAM#name@email.com
, quindi fare clic su Copia comando di login. - Fare clic su Visualizza token e copiare il comando
oc login
. - Incolla il comando nella tua riga di comando.
Per motivi di sicurezza, esci prima dalla console web IBM Cloud e poi dalla console web Red Hat OpenShift prima di chiudere il browser. Devi completare entrambi i passi nell'ordine specificato per scollegarti correttamente dalla console web Red Hat OpenShift.
Se non puoi o non vuoi aprire la console Red Hat OpenShift, scegli tra le seguenti opzioni per accedere al tuo cluster Red Hat OpenShift on IBM Cloud utilizzando la CLI.
- Accedi come admin:
- Assicurati di disporre del ruolo di accesso della piattaforma IAM Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster e scaricare i certificati TLS e i file di autorizzazione per l'amministratore. Per ulteriori informazioni, vedi la documentazione della CLI.
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
- Accedere con una chiave API: Vedere Utilizzo di una chiave API per accedere a Red Hat OpenShift.
Accesso ai cluster dalla rete privata IBM Cloud
Se sei connesso alla rete privata IBM Cloud, puoi utilizzare l'endpoint di link Satellite che viene generato automaticamente per il tuo cluster. Questo endpoint ti permette di connetterti tramite il server tunnel Link protetto al master del
cluster nel tuo piano di controllo dell'ubicazione. L'endpoint è costituito dal nome host del server del tunnel di collegamento e da una porta nodo, formattata come c-02.<region>.link.satellite.cloud.ibm.com:<port>
.
Per connetterti al tuo cluster Satellite utilizzando l'endpoint Link, ad esempio --endpoint link
nella CLI, devi seguire la procedura per configurare un' Origine nella tua ubicazione. Questa origine consente l'accesso
alle tue API cluster tramite l'endpoint Link. Per ulteriori informazioni, vedi Accessing your Red Hat OpenShift API Satellite link endpoints.
- Assicurati di disporre del ruolo di accesso della piattaforma IAM Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster utilizzando l'endpoint Link e scaricare i certificati TLS e i file di autorizzazioni per l'amministratore. Per ulteriori informazioni, vedi la documentazione della CLI.
ibmcloud oc cluster config -c <cluster_name_or_ID> --endpoint link --admin
Accesso ai cluster dalla rete pubblica
Se i tuoi host hanno la connettività di rete pubblica e vuoi accedere al tuo cluster dalla tua macchina locale senza essere connesso alla rete privata dei tuoi host, puoi facoltativamente aggiornare il dominio secondario del tuo cluster e il record DNS dell'ubicazione per utilizzare gli indirizzi IP pubblici dei tuoi host.
Per la maggior parte delle configurazioni dell'ubicazione, gli indirizzi IP privati degli host sono registrati per il record DNS dell'ubicazione in modo che sia possibile accedere al cluster solo se si è connessi alla rete privata del provider cloud.
Ad esempio, se utilizzi Amazon Web Services, Google Cloud Platform o host Microsoft Azure o se l'interfaccia di rete predefinita dei tuoi host è privata, il record DNS della tua ubicazione è accessibile solo sulla rete privata.
Per eseguire i comandi kubectl
o oc
sul tuo cluster o accedere alla console web Red Hat OpenShift, devi essere connesso alla rete privata dei tuoi host, come ad esempio tramite l'accesso VPN. Tuttavia, se vuoi accedere
al tuo cluster dalla rete pubblica, ad esempio per verificare l'accesso al tuo cluster dalla tua macchina locale, puoi modificare i record DNS per la tua ubicazione e i sottodomini del cluster per utilizzare invece gli IP pubblici dei tuoi
host.
Rendere la tua ubicazione e i tuoi sottodomini cluster disponibili al di fuori della rete privata dei tuoi host per gli utenti del cluster autorizzati non è consigliato per i carichi di lavoro a livello di produzione.
- Esamina i sottodomini dell'ubicazione e controlla i Record per gli indirizzi IP privati degli host registrati nel DNS per il sottodominio.
ibmcloud sat location dns ls --location <location_name_or_ID>
- Richiama gli indirizzi IP pubblici corrispondenti dei tuoi host.
ibmcloud sat host ls --location <location_name_or_ID>
- Aggiornare il record DNS del sottodominio di ubicazione con gli indirizzi IP pubblici di ogni host nel piano di controllo.
ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP>
- Verifica che gli indirizzi IP pubblici siano registrati con il tuo record DNS di ubicazione.
ibmcloud sat location dns ls --location <location_name_or_ID>
- Ottieni il Nome host per il tuo cluster nel formato
<service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud
e prendi nota degli IP privati che sono stati automaticamente registrati.ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
- Aggiungere gli indirizzi IP pubblici degli host assegnati come nodi di lavoro a questo cluster al dominio secondario del cluster. Ripetere questo comando per ogni indirizzo IP pubblico dell'host.
ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
- Rimuovere gli indirizzi IP privati dal dominio secondario del tuo cluster. Ripetere questo comando per tutti gli indirizzi IP privati richiamati in precedenza.
ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
- Verificare che gli indirizzi IP pubblici siano registrati con il dominio secondario del cluster.
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
Accesso ai cluster VPC tramite Virtual Private Endpoint Gateway
Virtual Private Endpoint Gateway viene creato automaticamente per i cluster VPC. Il master Kubernetes è accessibile tramite questo gateway endpoint privato virtuale se gli utenti del cluster autorizzati
sono connessi allo stesso VPC in cui è distribuito il cluster, ad esempio tramite una VPN IBM Cloud VPC. In questo caso, il sito kubeconfig
è configurato con il Virtual Private Endpoint
(VPE) URL che è un nome DNS privato e può essere risolto solo dal servizio DNS privato IBM Cloud VPC. Gli indirizzi dei server DNS privati di IBM Cloud VPC sono 161.26.0.7
e 161.26.0.8
.
Per i cluster che eseguono la versione 4.13: se hai abilitato solo l'endpoint del servizio cloud privato durante la creazione del cluster, l'endpoint privato virtuale del tuo VPC viene utilizzato
per impostazione predefinita per accedere ai componenti Red Hat OpenShift come la console web Red Hat OpenShift o OperatorHub. Devi essere connesso alla rete VPC privata, ad esempio tramite una connessione VPN, per accedere a tali componenti
o eseguire i comandi kubectl
nel tuo cluster. Nota che per accedere alla console tramite VPE, devi essere in grado di accedere a cloud.ibm.com
, che richiede la connettività pubblica.
-
Imposta la tua VPN IBM Cloud VPC e connettiti al tuo VPC tramite VPN.
- Configura una VPN client - to - site o site - to - site per il tuo VPC. Ad esempio, è possibile scegliere di impostare una connessione da client a sito con un client VPN.
- Per le configurazioni VPN client - to - site, devi specificare gli indirizzi del servizio DNS privato IBM Cloud VPC quando esegui il provisioning del server VPN come indicato nelle considerazioni.
Devi anche creare una rotta VPN dopo aver eseguito il provisioning del server VPN, con la destinazione
161.26.0.0/16
e l'azionetranslate
. - Per le configurazioni VPN da sito a sito, devi seguire la Guida all'accesso agli endpoint del servizio tramite VPN e configurare gli indirizzi del servizio DNS privato IBM Cloud VPC.
- Verifica di essere connesso al VPC tramite la tua connessione VPN IBM Cloud VPC.
-
Per accedere al tuo cluster, scegli tra le seguenti opzioni.
- Accedi come admin:
- Assicurarsi di avere il ruolo di accesso alla piattaforma Administrator per il cluster.
- Impostare il contesto della riga di comando per il cluster e scaricare i certificati TLS e i file di autorizzazione per l'amministratore.
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
- Accedere con una chiave API: Vedere Utilizzo di una chiave API per accedere a Red Hat OpenShift.
- Accedi con il passcode IBM Cloud:
- Ottenere l'indirizzo VPE e il master URL nell'output del seguente comando.
ibmcloud oc cluster get -c <cluster_name_or_ID>
- Nel tuo browser, apri il seguente sito web del passcode IBM Cloud IAM.
https://iam.cloud.ibm.com/identity/passcode
- Accedi con il tuo ID IBM e copia il passcode.
- Accedi al tuo cluster con il passcode.
La procedura di accesso notificherà tale certificato firmato da un'autorità sconosciuta poiché è un certificato autofirmato generato da IBM.oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
- Ottenere l'indirizzo VPE e il master URL nell'output del seguente comando.
- Accedi come admin:
-
Verificare che i comandi di
oc
vengano eseguiti correttamente con il cluster attraverso l'endpoint del servizio di cloud privato, controllando la versione.oc version
Output di esempio
Client Version: 4.5.0-0.okd-2020-09-04-180756 Server Version: 4.5.35 Kubernetes Version: v1.18.3+cdb0358
Accesso ai cluster dagli strumenti di automazione utilizzando una chiave API
Red Hat OpenShift on IBM Cloud è integrato con IBM Cloud Identity and Access Management (IAM). Con IAM, puoi autenticare gli utenti e i servizi utilizzando le loro identità IAM e autorizzare azioni con ruoli e politiche di accesso. Quando ci
si autentica come utente attraverso la console Red Hat OpenShift, l'identità IAM viene utilizzata per generare un token di accesso Red Hat OpenShift che può essere utilizzato per accedere alla riga di comando. Puoi automatizzare l'accesso
al tuo cluster creando una chiave API o un ID servizio IAM da utilizzare per il comando oc login
.
Utilizzo di una chiave API per accedere ai cluster
È possibile creare una chiave API IAM IBM Cloud e quindi usare la chiave API per accedere a un cluster Red Hat OpenShift. Con le chiavi API, puoi utilizzare le credenziali di un account utente o di un account condiviso per accedere a un cluster, invece di accedere singolarmente. Potresti anche creare una chiave API per un ID servizio. Per ulteriori informazioni, vedi Descrizione delle chiavi API.
-
Crea una chiave API IBM Cloud. Salva la tua chiave API in un'ubicazione sicura. Non è possibile recuperare la chiave API. Se si desidera esportare l'output in un file sul computer locale, includere l'opzione
--file <path>/<file_name>
.ibmcloud iam api-key-create <name>
-
Configura il tuo cluster per aggiungere l'utente della chiave API alle politiche RBAC del cluster e per impostare il tuo contesto della sessione sul server del cluster.
- Accedi a IBM Cloud con le credenziali della chiave API.
ibmcloud login --apikey <API_key>
- Scarica il file di configurazione
kubeconfig
per il tuo cluster e aggiungilo al tuo filekubeconfig
esistente in~/.kube/config
o all'ultimo file nella variabile di ambienteKUBECONFIG
. Nota: se hai abilitato l'endpoint del servizio cloud privato e vuoi utilizzarlo per il contesto cluster, includi l'opzione--endpoint private
. Per utilizzare l'endpoint del servizio cloud privato per il collegamento al tuo cluster, devi essere nella tua rete privata IBM Cloud o connesso alla rete privata tramite una connessione VPN VPC o per l'infrastruttura classica, una connessione VPN classica o IBM Cloud Direct Link.ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
- Accedi a IBM Cloud con le credenziali della chiave API.
-
Scambiate le vostre credenziali della chiave API IAM di IBM Cloud con un token di accesso Red Hat OpenShift. Puoi accedere dalla CLI o dall'API. Per ulteriori informazioni, consulta la Red Hat OpenShift documentazione.
Accedi utilizzando la CLI
oc
: Accedere al cluster con il comandooc login
. Il nome utente (-u
) èapikey
e la password (-p
) è il valore della tua chiave API IBM Cloud IAM. Per utilizzare l'endpoint del servizio cloud privato, includere l'opzione--server=<private_service_endpoint>
.oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
Accedi eseguendo le richieste API Red Hat OpenShift direttamente sul tuo cluster: Accedere al cluster con l'API, ad esempio tramite una richiesta curl.
-
Ottieni l'URL master del tuo cluster.
ibmcloud oc cluster get -c <cluster_name_or_ID>
Output di esempio
NAME: mycluster ID: 1234567 State: normal Created: 2020-01-22T19:22:16+0000 Location: dal10 Master URL: https://c100-e.<region>.containers.cloud.ibm.com:<port> ...
-
Ottieni l'endpoint token del server Red Hat OpenShift
oauth
.curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint
Output di esempio
<token_endpoint>/oauth/token
: schermo}
-
Accedi al cluster con l'endpoint che hai richiamato in precedenza. Sostituire
<URL>
con il<token_endpoint>
del serveroauth
.Richiesta curl di esempio:
curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv
-
Nella risposta Location, trova
access_token
, come nel seguente esempio.< HTTP/1.1 302 Found < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Expires: 0 < Expires: Fri, 01 Jan 1990 00:00:00 GMT < Location: <token_endpoint>/oauth/token/implicit#access_token=<access_token>&expires_in=86400&scope=user%3Afull&token_type=Bearer ...
-
Utilizzare il master del cluster URL e il token di accesso per accedere all'API Red Hat OpenShift, ad esempio per elencare tutti i pod nel cluster. Per ulteriori informazioni, consultare la documentazione dell'API Red Hat OpenShift.
Richiesta curl di esempio:
curl -H "Authorization: Bearer <access_token>" '<master_URL>/api/v1/pods'
-
Utilizzo di un ID servizio per accedere ai cluster
È possibile creare un ID di servizio IAM IBM Cloud, creare una chiave API per l'ID di servizio e quindi utilizzare la chiave API per accedere a un cluster Red Hat OpenShift. Potresti utilizzare gli ID servizio in modo che le applicazioni ospitate in altri cluster o cloud possano accedere ai servizi del tuo cluster. Poiché gli ID servizio non sono associati a un utente specifico, le tue applicazioni possono autenticarsi se singoli utenti lasciano il tuo account. Per ulteriori informazioni, vedi Creazione e gestione degli ID servizio.
-
Crea un ID del servizio IBM Cloud IAM per il tuo cluster che viene utilizzato per le politiche IAM e per le credenziali della chiave API. Assicurati di fornire all'ID servizio una descrizione che ti aiuti a richiamare l'ID in un secondo momento, ad esempio includendo il nome del cluster.
ibmcloud iam service-id-create <cluster_name>-id --description "Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name>"
Output di esempio
NAME <cluster_name>-id Description Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name> CRN crn:v1:bluemix:public:iam-identity::a/1aa111aa1a11111aaa1a1111aa1aa111::serviceid:ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22 Bound To crn:v1:bluemix:public:::a/1aa111aa1a11111aaa1a1111aa1aa111::: Version 1-c3c333333333ccccc33333c33cc3cc33 Locked false UUID ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22
-
Crea una politica IBM Cloud IAM personalizzata per l'ID del servizio cluster che conceda l'accesso a Red Hat OpenShift on IBM Cloud.
ibmcloud iam service-policy-create <cluster_service_ID> --service-name containers-kubernetes --roles <service_access_role> --service-instance <cluster_ID>
Descrizione dei componenti di questo comando Parametro Descrizione <cluster_service_ID>
Obbligatorio. Immettere l'ID del servizio precedentemente creato per il cluster Red Hat OpenShift. --service-name containers-kubernetes
Obbligatorio. Immetti containers-kubernetes
in modo che la politica IAM sia per i cluster Red Hat OpenShift on IBM Cloud.--roles <service_access_role>
Obbligatorio. Immettere il ruolo di accesso che si desidera che l'ID servizio abbia nel cluster Red Hat OpenShift. I ruoli di accesso alla piattaforma consentono attività di gestione del cluster, come la creazione di nodi worker. I ruoli di accesso ai servizi corrispondono ai ruoli RBAC che consentono le attività di gestione di Red Hat OpenShift all'interno del cluster, ad esempio per le risorse Kubernetes come pod e namespace. Per indicare più ruoli, includi un elenco separato da virgole. I valori possibili sono Administrator
,Operator
,Editor
eViewer
(ruoli di accesso alla piattaforma); eReader
,Writer
eManager
(ruoli di accesso ai servizi).--service-instance <cluster_ID>
Per limitare la politica a un determinato cluster, immetti l'ID del cluster. Per ottenere il tuo ID del cluster, esegui ibmcloud oc clusters
. Se non si include l'istanza del servizio, il criterio di accesso garantisce l'accesso dell'ID del servizio a tutti i cluster, Kubernetes e Red Hat OpenShift. Puoi anche delimitare l'ambito della politica di accesso a una regione (--region
) o a un gruppo di risorse (--resource-group-name
). -
Crea una chiave API per l'ID del servizio. Assegnare alla chiave API un nome simile all'ID del servizio e includere l'ID del servizio creato in precedenza,
<cluster_name>-id
. Assicurati di fornire alla chiave API una descrizione che ti aiuti a richiamare la chiave in un secondo momento. Salva la tua chiave API in un'ubicazione sicura. Non è possibile recuperare la chiave API. Se si desidera esportare l'output in un file sul computer locale, includere l'opzione--file <path>/<file_name>
.ibmcloud iam service-api-key-create <cluster_name>-key <service_ID> --description "API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name>"
Output di esempio
Please preserve the API key! It can't be retrieved after it's created. Name <cluster_name>-key Description API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name> Bound To crn:v1:bluemix:public:iam-identity::a/1bb222bb2b33333ddd3d3333ee4ee444::serviceid:ServiceId-ff55555f-5fff-6666-g6g6-777777h7h7hh Created At 2019-02-01T19:06+0000 API Key i-8i88ii8jjjj9jjj99kkkkkkkkk_k9-llllll11mmm1 Locked false UUID ApiKey-222nn2n2-o3o3-3o3o-4p44-oo444o44o4o4
-
Configura il tuo cluster per aggiungere l'utente dell'ID servizio alle politiche RBAC del cluster e per impostare il tuo contesto della sessione sul server del cluster.
-
Accedi a IBM Cloud con le credenziali della chiave API dell'ID servizio.
ibmcloud login --apikey <API_key>
-
Scarica il file di configurazione
kubeconfig
per il tuo cluster e aggiungilo al tuo filekubeconfig
esistente in~/.kube/config
o all'ultimo file nella variabile di ambienteKUBECONFIG
. Nota: se hai abilitato l'endpoint del servizio cloud privato e vuoi utilizzarlo per il contesto cluster, includi l'opzione--endpoint private
. Per utilizzare l'endpoint del servizio cloud privato per il collegamento al tuo cluster, devi essere nella tua rete privata IBM Cloud o connesso alla rete privata tramite una connessione VPN VPC o per l'infrastruttura classica, una connessione VPN classica o IBM Cloud Direct Link.ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
-
-
Utilizzare la chiave API dell'ID del servizio per accedere al cluster Red Hat OpenShift. Il nome utente (
-u
) èapikey
e la password (-p
) è il valore della tua chiave API. Per utilizzare l'endpoint del servizio cloud privato, includere l'opzione--server=<private_service_endpoint>
.oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
-
Verifica che l'ID servizio possa eseguire le azioni che hai autorizzato.
Esempio: Se è stato assegnato un ruolo di accesso al servizio
Reader
, l'ID del servizio può elencare i pod nel progetto Red Hat OpenShift.oc get pods
Esempio: Se è stato assegnato un ruolo di accesso al servizio
Manager
, l'ID del servizio può elencare gli utenti del cluster Red Hat OpenShift. L'ID del tuo ID servizio IAM si trova nell'output Identities. Altri singoli utenti potrebbero essere identificati dal loro indirizzo email e ID IBM.oc get users
Output di esempio
NAME UID FULL NAME IDENTITIES IAM# dd44ddddd-d4dd-44d4-4d44-4d44d444d444 IAM:iam-ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22 IAM#first.last@email.com 55555ee5-e555-55e5-e5e5-555555ee55ee IAM:IBMid-666666FFF6
Protezione dei cluster mediante restrizioni basate sul contesto
Gli elenchi di permessi degli endpoint dei servizi privati non sono più supportati. Migrare dalle liste di permessi degli endpoint dei servizi privati alle restrizioni basate sul contesto il prima possibile. Per le fasi specifiche della migrazione, vedere Migrazione da un elenco di permessi di un endpoint di servizio privato a restrizioni basate sul contesto(CBR).
Controllate l'accesso ai vostri endpoint di servizi pubblici e privati utilizzando regole di restrizione basate sul contesto (CBR).
Dopo aver concesso agli utenti l'accesso al cluster tramite IBM Cloud IAM, è possibile aggiungere un livello secondario di sicurezza creando regole CBR per l'endpoint pubblico e privato del servizio del cluster. Saranno consentite solo le richieste autorizzate al master del cluster che provengono dalle sottoreti indicate nelle regole CBR.
Se si desidera consentire le richieste da una VPC diversa da quella in cui si trova il cluster, è necessario includere l'indirizzo IP dell'endpoint del servizio cloud per quella VPC nelle regole CBR.
Ad esempio, per accedere all'endpoint del servizio cloud privato del tuo cluster, devi connetterti alla tua rete classica IBM Cloud o alla tua rete VPC tramite una VPN o IBM Cloud Direct Link. È possibile specificare solo la sottorete per il tunnel VPN o Direct Link nelle regole CBR, in modo che solo gli utenti autorizzati dell'organizzazione possano accedere all'endpoint del servizio cloud privato da quella sottorete.
Le regole CBR pubbliche (se il cluster ha un endpoint di servizio pubblico) possono anche aiutare a impedire agli utenti di accedere al cluster dopo la revoca dell'autorizzazione. Quando un utente lascia la tua organizzazione, rimuovi le sue autorizzazioni IAM IBM Cloud che concedono loro l'accesso al cluster. Tuttavia, l'utente potrebbe aver copiato il file kubeconfig dell'amministratore di un cluster, ottenendo così l'accesso a quel cluster. Se si dispone di una regola CBR pubblica che consente l'accesso ai master del cluster solo da sottoreti pubbliche note di proprietà dell'organizzazione, il tentativo di accesso dell'utente da un altro indirizzo IP pubblico verrà bloccato.
Le sottoreti dei nodi worker vengono aggiunte e rimosse automaticamente dall'implementazione CBR del backend (ma non dalle regole/zone CBR), in modo che i nodi worker possano sempre accedere al master del cluster e gli utenti non debbano aggiungerle specificamente alle proprie regole CBR.
Per saperne di più sulla protezione del cluster con le regole CBR, vedere Protezione delle risorse del cluster con restrizioni basate sul contesto ed Esempi di scenari di restrizioni basate sul contesto