IBM Cloud Docs
Accès aux clusters Red Hat OpenShift

Accès aux clusters Red Hat OpenShift

Une fois que vous avez créé votre cluster Red Hat® OpenShift® on IBM Cloud®, vous pouvez commencer à le gérer en y accédant.

Prérequis

  1. Installez les outils d'interface de ligne de commande requis. Pour accéder rapidement aux fonctionnalités de test de votre cluster, vous pouvez également utiliser IBM Cloud Shell.
  2. Créez votre cluster Red Hat OpenShift.
  3. Si votre réseau est protégé par un pare-feu d'entreprise, autorisez l'accès aux noeuds finaux d'API et aux ports IBM Cloud et Red Hat OpenShift on IBM Cloud. Pour les clusters VPC avec uniquement le nœud final de service de cloud privé activé, vous ne pouvez pas tester la connexion à votre cluster jusqu'à ce que vous Configurer un VPN VPC avec le sous-réseau du nœud final de service de cloud.
  4. Vérifiez que votre cluster est sain en exécutant ibmcloud oc cluster get -c <cluster_name_or_ID>. Si votre cluster n'est pas dans un état sain, consultez le guide Débogage des clusters pour obtenir de l'aide. Par exemple, si votre cluster est mis à disposition dans un compte qui est protégé par un dispositif de passerelle de pare-feu, vous devez configurer vos paramètres de pare-feu pour autoriser le trafic sortant vers les ports et les adresses IP appropriés.
  5. Recherchez le noeud final de service de votre cluster.
    • Clusters classiques ou de VPC : Dans la sortie des détails du cluster obtenue à l'étape précédente, vérifiez l'URL de noeud final de service public ou de noeud final de service privé du cluster.
    • Clusters IBM Cloud Satellite : passez à l'étape Accès aux clusters sur Satellite.
  6. Si des utilisateurs de votre compte utilisent l'authentification multifactorielle (MFA) comme TOTP, veillez à l 'activer pour tous les utilisateurs au niveau du compte. Pour utiliser l'AFM, il faut l'activer au niveau du compte afin d'éviter les erreurs d'authentification.

Accès aux clusters via le noeud final de service cloud public

Si vous possédez un cluster Red Hat OpenShift avec un noeud final de service cloud public, vous pouvez vous y connecter à partir de la console ou de l'interface CLI.

Connexion au cluster à partir de la console

Vous pouvez accéder rapidement à votre cluster Red Hat OpenShift on IBM Cloud à partir de la console.

  1. Dans la console, cliquez sur le cluster auquel vous souhaitez accéder.
  2. Cliquez sur Console Web Red Hat OpenShift.
  3. Pour continuer à travailler dans la ligne de commande, cliquez sur votre nom de profil, tel que IAM#name@email.com, puis cliquez sur Copy Login Command. Selon la version de votre cluster, procédez de l'une des façons décrites ci-après pour vous connecter à votre cluster à partir de la ligne de commande.
    • Version 4 : cliquez sur Display Token, copiez la commande oc login et collez-la dans votre ligne de commande.

Pour des raisons de sécurité, vous devez d'abord vous déconnecter de la console IBM Cloud, puis vous déconnecter de la console Web Red Hat OpenShift avant de fermer votre navigateur. Vous devez exécuter les deux étapes dans l'ordre indiqué pour vous déconnecter de la console Web Red Hat OpenShift.

Étape suivante ?
Déploiement d'applications via la console.

Connexion au cluster à partir de l'interface CLI

Généralement, vous pouvez utiliser la console Web Red Hat OpenShift pour obtenir le jeton oc login pour accéder à votre cluster. Si vous ne pouvez pas ou ne souhaitez pas ouvrir la console Red Hat OpenShift, choisissez parmi les options suivantes pour vous connecter à votre cluster Red Hat OpenShift on IBM Cloud à l'aide de l'interface de ligne de commande.

Choisissez l'une des options décrites ci-après.

  • Connexion en tant qu'administrateur :
    1. Vérifiez que vous disposez du rôle d'accès à la plateforme Administrateur pour le cluster.
    2. Définissez votre contexte de ligne de commande pour le cluster et téléchargez les certificats et les fichiers de droits TLS pour l'administrateur.
      ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
      
  • Connexion à l'aide d'une clé d'API : voir Utilisation d'une clé d'API pour se connecter à Red Hat OpenShift.
  • Connexion à l'aide d'un code d'accès IBM Cloud :
    1. Obtenez l'URL du maître de votre cluster dans la sortie de la commande suivante :
      ibmcloud oc cluster get -c <cluster_name_or_ID>
      
    2. Dans votre navigateur, ouvrez le site Web de code d'accès IBM Cloud IAM suivant :
      https://iam.cloud.ibm.com/identity/passcode
      
    3. Connectez-vous à l'aide de votre IBMid et copiez le code d'accès.
    4. Connectez-vous à votre cluster avec le code d'accès.
      oc login -u passcode -p <iam_passcode> --server=<master_URL>
      

Accès aux clusters via le noeud final de service cloud privé

Permettez aux utilisateurs autorisés du cluster d'accéder à votre cluster VPC ou classique via le noeud final de service de cloud privé.

Vous voulez configurer un réseau privé virtuel pour vous connecter à votre cluster à partir de votre machine locale ? Reportez-vous à la rubrique décrivant l'accès aux clusters privés à l'aide du réseau privé virtuel Wireguard.

Accès aux clusters de VPC via le noeud final de service cloud privé

Le maître Red Hat OpenShift est accessible via le noeud final de service cloud privé si les utilisateurs de cluster autorisés se trouvent dans votre réseau privé IBM Cloud ou s'ils sont connectés au réseau privé, par exemple, via une connexion VPN VPC. Toutefois, la communication avec le maître Kubernetes via le noeud final de service cloud privé doit passer par la plage d'adresses IP 166.X.X.X, que vous devez définir dans votre configuration de passerelle VPN et de connexion.

  1. Configurez votre réseau privé virtuel (VPN) IBM Cloud VPC et connectez-vous à votre réseau privé via le VPN.

    1. Configurez une passerelle VPN sur votre machine locale. Par exemple, vous pouvez choisir de configurer StrongSwan sur votre machine.
    2. Créez une passerelle VPN dans votre VPC, et créez la connexion entre la passerelle VPN VPC et votre passerelle VPN locale. Dans la section Nouvelle connexion VPN pour VPC, ajoutez le sous-réseau 166.8.0.0/14 à la zone Sous-réseaux locaux. Si vous disposez d'un cluster multizone, répétez cette étape pour configurer une passerelle VPC sur un sous-réseau dans chaque zone comportant des noeuds worker.
    3. Vérifiez que vous êtes connecté au réseau privé via votre connexion VPN IBM Cloud VPC.
  2. Pour vous connecter à votre cluster, choisissez l'une des options suivantes :

    • Connexion en tant qu'administrateur :
      1. Vérifiez que vous disposez du rôle d'accès à la plateforme Administrateur pour le cluster.
      2. Définissez votre contexte de ligne de commande pour le cluster et téléchargez les certificats et les fichiers de droits TLS pour l'administrateur.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Connexion à l'aide d'une clé d'API : voir Utilisation d'une clé d'API pour se connecter à Red Hat OpenShift.
    • Connexion à l'aide d'un code d'accès IBM Cloud :
      1. Notez l'URL de noeud final de service privé de votre cluster dans la sortie de la commande suivante :
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Dans votre navigateur, ouvrez le site Web de code d'accès IBM Cloud IAM suivant :
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Connectez-vous à l'aide de votre IBMid et copiez le code d'accès.
      4. Connectez-vous à votre cluster avec le code d'accès.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  3. Assurez-vous que les commandes oc s'exécutent correctement avec votre cluster via le noeud final de service cloud privé en vérifiant la version.

    oc version
    

    Exemple de sortie

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Accès aux clusters classiques via le noeud final de service cloud privé

Le maître Red Hat OpenShift est accessible via le noeud final de service cloud privé si les utilisateurs de cluster autorisés se trouvent dans votre réseau privé IBM Cloud ou s'ils sont connectés au réseau privé, par exemple, via une connexion VPN classique ou IBM Cloud Direct Link. Toutefois, la communication avec le maître Kubernetes via le noeud final de service cloud privé doit passer par la plage d'adresses IP 166.X.X.X, qui n'est pas routable à partir d'une connexion VPN classique, ou par IBM Cloud Direct Link. Vous pouvez exposer le noeud final de service cloud privé du maître pour vos utilisateurs de cluster en utilisant un équilibreur de charge de réseau (NLB) privé. L'équilibreur de charge de réseau privé expose le noeud final de service cloud privé du maître en tant que plage d'adresses IP 10.X.X.X interne auxquelles les utilisateurs peuvent accéder à l'aide de la connexion VPN ou IBM Cloud Direct Link. Si vous activez uniquement le noeud final de service cloud privé, vous pouvez utiliser la console Web Red Hat OpenShift pour créer l'équilibreur de charge de réseau (NLB) privé.

  1. Connectez-vous à votre cluster Red Hat OpenShift à l'aide du noeud final de service cloud public.

  2. Obtenez l'URL et le port de noeud final de service cloud privé pour votre cluster.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    

    Dans cet exemple de sortie, l'URL du noeud final de service privé (Private Service Endpoint URL) est 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.
    ...
    
  3. Créez un fichier YAML nommé oc-api-via-nlb.yaml. Ce fichier YAML crée un service LoadBalancer privé et exposé le noeud final de service cloud privé via cet équilibreur de charge de réseau. Remplacez <private_service_endpoint_port> par le port que vous avez trouvé à l'étape précédente.

    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
    
    
    
  4. Pour créer l'équilibreur de charge de réseau et le noeud final :

    1. Appliquez le fichier de configuration que vous avez créé précédemment.
      oc apply -f oc-api-via-nlb.yaml
      
    2. Vérifiez que l'équilibreur de charge de réseau oc-api-via-nlb a été créé. Dans le résultat, notez l'adresse 10.x.x.x EXTERNAL-IP. Cette adresse IP expose le noeud final de service cloud privé pour le maître cluster sur le port que vous avez spécifié dans votre fichier YAML.
      oc get svc -o wide
      
      Dans cet exemple de sortie, l'adresse IP pour le noeud final de service cloud privé du maître est 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>
      ...
      
  5. Sur les machines client où vous ou vos utilisateurs exécutez des commandes oc, ajoutez l'adresse IP d'équilibreur de charge de réseau et l'URL de noeud final de service cloud privé au fichier /etc/hosts. N'incluez aucun port dans l'adresse IP et l'URL et n'incluez pas https:// dans l'URL.

    • Pour les utilisateurs macOS et Linux :

      sudo nano /etc/hosts
      
    • Pour les utilisateurs Windows :

      notepad C:\Windows\System32\drivers\etc\hosts
      

      En fonction des droits de votre machine locale, vous devrez peut-être exécuter Notepad en tant qu'administrateur pour éditer le fichier hosts.

      Exemple de texte à ajouter :

      10.186.92.42      c1.private.us-east.containers.cloud.ibm.com
      
  6. Vérifiez que vous êtes connecté au réseau privé via une connexion VPN ou IBM Cloud Direct Link.

  7. Connectez-vous à votre cluster en choisissant l'une des options suivantes :

    • Connexion en tant qu'administrateur :
      1. Vérifiez que vous disposez du rôle d'accès à la plateforme Administrateur pour le cluster.
      2. Définissez votre contexte de ligne de commande pour le cluster et téléchargez les certificats et les fichiers de droits TLS pour l'administrateur.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Connexion à l'aide d'une clé d'API : voir Utilisation d'une clé d'API pour se connecter à Red Hat OpenShift.
    • Connexion à l'aide d'un code d'accès IBM Cloud :
      1. Notez l'URL de noeud final de service privé de votre cluster dans la sortie de la commande suivante :
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Dans votre navigateur, ouvrez le site Web de code d'accès IBM Cloud IAM suivant :
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Connectez-vous à l'aide de votre IBMid et copiez le code d'accès.
      4. Connectez-vous à votre cluster avec le code d'accès.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  8. Assurez-vous que les commandes oc s'exécutent correctement avec votre cluster via le noeud final de service cloud privé en vérifiant la version.

    oc version
    

    Exemple de sortie

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Accès aux clusters Red Hat OpenShift sur Satellite

Après avoir créé un cluster Red Hat OpenShift dans votre emplacement Satellite, vous pouvez commencer à l'utiliser en y accédant.

Lorsque vous accédez à votre cluster et que vous exécutez les commandes oc get nodes ou oc describe node <worker_node>, vous pouvez constater que les rôles master,worker ont été attribués aux nœuds de travail. Dans les clusters OpenShift Container Platform, les opérateurs utilisent le rôle maître comme nodeSelector pour que OCP puisse déployer des composants par défaut contrôlés par des opérateurs, tels que le registre interne, dans votre cluster. Les hôtes Satellite que vous avez affectés à votre cluster fonctionnent en tant que noeuds worker uniquement, et aucun processus de noeud maître, tel que le serveur d'API ou le planificateur Kubernetes, ne s'exécute sur vos noeuds worker.

Accès aux clusters via l'URL du service de cluster

Connectez-vous à votre cluster via son URL de service. Cette URL correspond à l'un de vos sous-domaines d'emplacement Satellite suivi d'un port de noeud, formaté comme suit https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710.

Si vos hôtes d'emplacement disposent uniquement d'une connectivité au réseau privé ou si vous utilisez des hôtes Amazon Web Services, Google Cloud Platform et Microsoft Azure, vous devez être connecté au réseau privé de vos hôtes, par exemple via un accès VPN, pour vous connecter à votre cluster et accéder à la console Web Red Hat OpenShift. Sinon, si vos hôtes disposent d'une connectivité au réseau public, vous pouvez tester l'accès à votre cluster en modifiant les enregistrements DNS de votre cluster et de votre emplacement de manière à utiliser les adresses IP publiques de vos hôtes.

Vous pouvez accéder rapidement à votre cluster Red Hat OpenShift on IBM Cloud à partir de la console.

  1. Dans la console, cliquez sur le cluster auquel vous souhaitez accéder.
  2. Cliquez sur Console Web Red Hat OpenShift.
  3. Cliquez sur votre nom de profil, par exemple IAM#name@email.com, puis cliquez sur Copy Login Command.
  4. Cliquez sur Display Token et copiez la commande oc login.
  5. Collez la commande dans votre ligne de commande.

Pour des raisons de sécurité, vous devez d'abord vous déconnecter de la console IBM Cloud, puis vous déconnecter de la console Web Red Hat OpenShift avant de fermer votre navigateur. Vous devez exécuter les deux étapes dans l'ordre indiqué pour vous déconnecter de la console Web Red Hat OpenShift.

Si vous ne pouvez pas ou ne souhaitez pas ouvrir la console Red Hat OpenShift, choisissez parmi les options suivantes pour vous connecter à votre cluster Red Hat OpenShift on IBM Cloud à l'aide de l'interface de ligne de commande.

Accès aux clusters depuis le réseau public

Si vos hôtes disposent d'une connectivité au réseau public et que vous souhaitez accéder à votre cluster à partir de votre machine locale sans être connecté au réseau privé de vos hôtes, vous pouvez éventuellement mettre à jour le sous-domaine de votre cluster et l'enregistrement DNS de votre emplacement de manière à utiliser les adresses IP publiques de vos hôtes.

Pour la plupart des configurations d'emplacement, les adresses IP privées de vos hôtes sont enregistrées pour l'enregistrement DNS de l'emplacement de sorte que vous ne puissiez accéder à votre cluster que si vous êtes connecté au réseau privé de votre fournisseur de cloud.

Par exemple, si vous utilisez des hôtes Amazon Web Services, Google Cloud Platform ou Microsoft Azure ou si l'interface réseau par défaut de vos hôtes est privée, l'enregistrement DNS de votre emplacement est accessible uniquement sur le réseau privé.

Pour exécuter des commandes kubectl ou oc sur votre cluster ou accéder à la console Web Red Hat OpenShift, vous devez être connecté au réseau privé de vos hôtes, par exemple, via un accès VPN. Toutefois, si vous souhaitez accéder à votre cluster à partir du réseau public, par exemple, pour tester l'accès à votre cluster à partir de votre machine locale, vous pouvez modifier les enregistrements DNS de vos sous-domaines d'emplacement et de cluster de manière utiliser à la place les adresses IP publiques de vos hôtes.

La mise à disposition de vos sous-domaines d'emplacement et de cluster en dehors du réseau privé de vos hôtes pour vos utilisateurs de cluster autorisés n'est pas recommandée pour les charges de travail de niveau production.

  1. Passez en revue les sous-domaines d'emplacement et vérifiez les enregistrements des adresses IP privées des hôtes qui sont enregistrés dans le DNS pour le sous-domaine.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  2. Extrayez les adresses IP publiques correspondantes de vos hôtes.
    ibmcloud sat host ls --location <location_name_or_ID>
    
  3. Mettez à jour l'enregistrement DNS du sous-domaine d'emplacement avec les adresses IP publiques de chaque hôte du plan de contrôle.
    ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP>
    
  4. Vérifiez que les adresses IP publiques sont enregistrées avec votre enregistrement DNS d'emplacement.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  5. Récupère le Nom d'hôte pour votre cluster au format <service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud et notez le IP (s) privé qui a été automatiquement enregistré.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    
  6. Ajoutez les adresses IP publiques des hôtes qui sont affectés en tant que noeuds worker à ce cluster dans le sous-domaine de votre cluster. Répétez cette commande pour l'adresse IP publique de chaque hôte.
    ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  7. Retirez les adresses IP privées du sous-domaine de votre cluster. Répétez cette commande pour toutes les adresses IP privées que vous avez récupérées précédemment.
    ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  8. Vérifiez que les adresses IP publiques sont enregistrées auprès du sous-domaine de votre cluster.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    

Accès aux clusters de VPC via la passerelle de noeud final privé virtuel

Virtual Private Endpoint Gateway est créé automatiquement pour les clusters de VPC. Le maître Kubernetes est accessible via cette passerelle de noeud final privé virtuel si les utilisateurs de cluster autorisés sont connectés au même VPC que celui sur lequel le cluster est déployé, par exemple via un réseau privé virtuel (VPN) IBM Cloud VPC. Dans ce cas, le site kubeconfig est configuré avec le Virtual Private Endpoint (VPE) URL qui est un nom DNS privé et ne peut être résolu que par le service DNS privé IBM Cloud VPC. Les adresses des serveurs DNS privés de IBM Cloud VPC sont 161.26.0.7 et 161.26.0.8.

Pour les clusters qui exécutent la version 4.13: si vous avez activé uniquement le noeud final de service de cloud privé lors de la création du cluster, le noeud final privé virtuel de votre VPC est utilisé par défaut pour accéder aux composants Red Hat OpenShift tels que la console Web Red Hat OpenShift ou OperatorHub. Vous devez être connecté au réseau VPC privé (par exemple, via une connexion VPN) pour accéder à ces composants ou exécuter des commandes kubectl sur votre cluster. Notez que pour accéder à la console via VPE, vous devez pouvoir accéder à cloud.ibm.com, qui requiert une connectivité publique.

  1. Configurez votre VPN IBM Cloud VPC et connectez-vous à votre VPC via VPN.

    1. Configurez un VPN client-à-site ou site-à-site sur votre VPC. Par exemple, vous pouvez choisir de configurer une connexion client à site avec un client VPN.
    2. Pour les configurations de réseau privé virtuel client-site, vous devez spécifier les adresses de service DNS privé IBM Cloud VPC lorsque vous mettez à disposition le serveur VPN comme indiqué dans les remarques. Vous devez également créer une route VPN après la mise à disposition du serveur VPN, avec la destination 161.26.0.0/16 et l'action translate.
    3. Pour les configurations de réseau privé virtuel de site à site, vous devez suivre le document Accès aux noeuds finaux de service via le guide VPN et configurer les adresses de service DNS privé IBM Cloud VPC.
    4. Vérifiez que vous êtes connecté au VPC via votre connexion VPN IBM Cloud VPC.
  2. Pour vous connecter à votre cluster, choisissez l'une des options suivantes :

    • Connexion en tant qu'administrateur :
      1. Vérifiez que vous disposez du rôle d'accès à la plateforme Administrateur pour le cluster.
      2. Définissez votre contexte de ligne de commande pour le cluster et téléchargez les certificats et les fichiers de droits TLS pour l'administrateur.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
        
    • Connexion à l'aide d'une clé d'API : voir Utilisation d'une clé d'API pour se connecter à Red Hat OpenShift.
    • Connexion à l'aide d'un code d'accès IBM Cloud :
      1. Obtenir l'adresse VPE et le maître URL dans la sortie de la commande suivante.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Dans votre navigateur, ouvrez le site Web de code d'accès IBM Cloud IAM suivant :
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Connectez-vous à l'aide de votre IBMid et copiez le code d'accès.
      4. Connectez-vous à votre cluster avec le code d'accès.
        oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
        
        La procédure de connexion notifie ce certificat signé par une autorité inconnue car il s'agit d'un certificat autosigné généré par IBM.
  3. Assurez-vous que les commandes oc s'exécutent correctement avec votre cluster via le noeud final de service cloud privé en vérifiant la version.

    oc version
    

    Exemple de sortie

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Accès aux clusters à partir d'outils d'automatisation à l'aide d'une clé d'API

Red Hat OpenShift on IBM Cloud est intégré à IBM Cloud Identity and Access Management (IAM). Avec IAM, vous pouvez authentifier des utilisateurs et des services en utilisant leurs identités IAM et autoriser des actions avec des rôles et des règles d'accès. Lorsque vous vous authentifiez en tant qu'utilisateur via la console Red Hat OpenShift, votre identité IAM est utilisée pour générer un jeton de connexion Red Hat OpenShift que vous pouvez utiliser pour vous connecter à la ligne de commande. Vous pouvez automatiser la connexion à votre cluster en créant une clé d'API IAM ou un ID de service à utiliser pour la commande oc login.

Utilisation d'une clé d'API pour se connecter aux clusters

Vous pouvez créer une clé API IAM IBM Cloud et l'utiliser pour vous connecter à un cluster Red Hat OpenShift. Les clés d'API vous permettent d'utiliser les données d'identification d'un utilisateur ou d'un compte partagé pour accéder à un cluster, au lieu de vous connecter individuellement. Vous pouvez également créer une clé d'API pour un ID de service. Pour plus d'informations, voir Description des clés d'API.

  1. Créez une clé d'API IBM Cloud. Sauvegardez votre clé d'API dans un emplacement sécurisé. Vous ne pouvez plus récupérer la clé API. Si vous souhaitez exporter le résultat dans un fichier sur votre machine locale, incluez l'option --file <path>/<file_name>.

    ibmcloud iam api-key-create <name>
    
  2. Configurez votre cluster pour ajouter l'utilisateur de la clé d'API à vos règles RBAC de cluster et pour définir votre contexte de session sur votre serveur de cluster.

    1. Connectez-vous à IBM Cloud à l'aide des données d'identification de clé d'API.
      ibmcloud login --apikey <API_key>
      
    2. Téléchargez et ajoutez le fichier de configuration kubeconfig pour votre cluster à votre kubeconfig existant dans ~/.kube/config ou le dernier fichier dans la variable d'environnement KUBECONFIG. Remarque: si vous avez activé le point d'extrémité du service de cloud privé et que vous souhaitez l'utiliser pour le contexte de cluster, incluez l'option --endpoint private. Pour utiliser le noeud final de service cloud privé afin de vous connecter au cluster, vous devez vous trouver dans votre réseau privé IBM Cloud ou être connecté au réseau privé via une connexion VPN VPC, ou pour une infrastructure classique, via une connexion VPN classique ou IBM Cloud Direct Link.
      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  3. Échangez votre clé d'API IAM IBM Cloud contre un jeton d'accès Red Hat OpenShift. Vous pouvez vous connecter à partir de l'interface de ligne de commande ou de l'API. Pour plus d'informations, voir la documentationRed Hat OpenShift.

    Connectez-vous à l'aide de l'interface de ligne de commande ocCLI : Connectez-vous à votre cluster à l'aide de la oc logincommande. Le nom d'utilisateur (-u) est apikey et le mot de passe (-p) est votre valeur de clé d'API IBM Cloud IAM. Pour utiliser le point d'extrémité du service de cloud privé, incluez l'option --server=<private_service_endpoint>.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    

    Connectez-vous en exécutant des demandes d'API Red Hat OpenShift directement sur votre cluster : Connectez-vous à votre cluster avec l'API, par exemple via une requête curl.

    1. Obtenez la valeur Master URL de votre cluster.

      ibmcloud oc cluster get -c <cluster_name_or_ID>
      

      Exemple de sortie

      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>
      ...
      
      
    2. Obtenez le noeud final de jeton du serveur Red Hat OpenShift oauth.

      curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint
      

      Exemple de sortie

      <token_endpoint>/oauth/token
      

      : écran}

    3. Connectez-vous au cluster avec le noeud final que vous avez récupéré précédemment. Remplacer <URL> par <token_endpoint> du serveur oauth.

      Exemple de requête curl :

      curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv
      
    4. Dans la réponse Location, recherchez le jeton d'accès (access_token), comme dans l'exemple suivant :

      < 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
      ...
      
    5. Utilisez l'URL du maître du cluster et le jeton d'accès pour accéder à l'API Red Hat OpenShift, par exemple pour afficher la liste de tous les pods du cluster. Pour plus d'informations, voir la documentation de l'API Red Hat OpenShift.

      Exemple de requête curl :

      curl -H "Authorization: Bearer <access_token>" '<master_URL>/api/v1/pods'
      

Utilisation d'un ID de service pour se connecter aux clusters

Vous pouvez créer un identifiant de service IBM Cloud IAM, créer une clé API pour l'identifiant de service, puis utiliser la clé API pour vous connecter à un cluster Red Hat OpenShift. Vous pouvez utiliser des ID de service de sorte que les applications hébergées dans d'autres clusters ou clouds puissent accéder aux services de votre cluster. Etant donné que les ID de service ne sont pas liés à un utilisateur spécifique, vos applications peuvent s'authentifier si des utilisateurs individuels quittent votre compte. Pour plus d'informations, voir Création et utilisation des ID de service.

  1. Créez un ID de service IBM Cloud IAM pour le cluster qui est utilisé pour les règles IAM et les données d'identification de clé d'API. Prenez soin d'indiquer une description pour l'ID de service, qui vous aidera à retrouver cet ID par la suite, par exemple en incluant le nom du cluster.

    ibmcloud iam service-id-create <cluster_name>-id --description "Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name>"
    

    Exemple de sortie

    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
    
  2. Créez une règle IBM Cloud IAM personnalisée pour l'ID de service de votre cluster qui autorise l'accès à 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>
    
    Description des composantes de cette commande
    Paramètre Description
    <cluster_service_ID> Obligatoire. Entrez l'ID de service que vous avez créé précédemment pour votre cluster Red Hat OpenShift.
    --service-name containers-kubernetes Obligatoire. Entrez containers-kubernetes de sorte que la clé IAM s'applique aux clusters Red Hat OpenShift on IBM Cloud.
    --roles <service_access_role> Obligatoire. Entrez le rôle d'accès que doit posséder l'ID de service sur votre cluster Red Hat OpenShift. Rôles d'accès à la plateforme autorise les activités de gestion des clusters, telles que la création de nœuds de travail. Rôles d'accès au service correspond aux rôles RBAC qui permettent aux activités de gestion Red Hat OpenShift dans le cluster, telles que les ressources Kubernetes telles que les gousses et les espaces de nom. Pour plusieurs rôle, indiquez-les dans une liste en les séparant par une virgule. Les valeurs possibles sont Administrator, Operator, Editoret Viewer (rôles d'accès aux plateformes) et Reader, Writeret Manager (rôles d'accès au service).
    --service-instance <cluster_ID> Pour limiter la règle à un cluster en particulier, entrez l'ID du cluster. Pour obtenir votre ID de cluster, exécutez la commande ibmcloud oc clusters. Si vous n'incluez pas l'instance de service, la règle d'accès accorde à l'ID service l'accès à tous vos clusters, Kubernetes et Red Hat OpenShift. Vous pouvez également étendre la portée de la règle d'accès à une région (--region) ou à un groupe de ressources (--resource-group-name).
  3. Créez une clé d'API pour l'ID de service. Nommez la clé de l'API similaire à votre ID de service et incluez l'ID de service que vous avez créé précédemment,<cluster_name>-id. Veillez à indiquer une description pour la clé d'API pour vous aider à la retrouver par la suite. Sauvegardez votre clé d'API dans un emplacement sécurisé. Vous ne pouvez plus récupérer la clé API. Si vous souhaitez exporter le résultat dans un fichier sur votre machine locale, incluez l'option --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>"
    

    Exemple de sortie

    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
    
  4. Configurez votre cluster pour ajouter l'utilisateur d'ID de service à vos règles RBAC de cluster et pour définir votre contexte de session sur votre serveur de cluster.

    1. Connectez-vous à IBM Cloud à l'aide des données d'identification de clé d'API d'ID de service.

      ibmcloud login --apikey <API_key>
      
    2. Téléchargez et ajoutez le fichier de configuration kubeconfig pour votre cluster à votre kubeconfig existant dans ~/.kube/config ou le dernier fichier dans la variable d'environnement KUBECONFIG. Remarque: si vous avez activé le point d'extrémité du service de cloud privé et que vous souhaitez l'utiliser pour le contexte de cluster, incluez l'option --endpoint private. Pour utiliser le noeud final de service cloud privé afin de vous connecter au cluster, vous devez vous trouver dans votre réseau privé IBM Cloud ou être connecté au réseau privé via une connexion VPN VPC, ou pour une infrastructure classique, via une connexion VPN classique ou IBM Cloud Direct Link.

      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  5. Utilisez la clé d'API d'ID de service pour vous connecter à votre cluster Red Hat OpenShift. Le nom d'utilisateur (-u) est apikey et le mot de passe (-p) est votre valeur de clé d'API. Pour utiliser le point d'extrémité du service de cloud privé, incluez l'option --server=<private_service_endpoint>.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    
  6. Vérifiez que l'ID de service peut effectuer les actions que vous avez autorisées.

    Exemple : si vous avez affecté un rôle d'accès au service Reader, l'ID de service peut répertorier les pods de votre projet Red Hat OpenShift.

    oc get pods
    

    Exemple : si vous avez affecté un rôle d'accès au service Manager, l'ID de service peut répertorier les utilisateurs de votre cluster Red Hat OpenShift. L'ID de votre ID de service IAM se trouve dans la sortie IDENTITIES. Les autres utilisateurs individuels peuvent être identifiés par leur adresse e-mail et leur IBMid.

    oc get users
    

    Exemple de sortie

    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
    

Protéger les clusters en utilisant des restrictions basées sur le contexte

Les listes d'autorisation des points d'extrémité des services privés ne sont plus prises en charge. Migrer dès que possible des listes d'autorisation des points de service privés vers des restrictions basées sur le contexte. Pour connaître les étapes spécifiques de la migration, voir Migration d'une liste d'autorisations de points d'extrémité de services privés vers des restrictions basées sur le contexte(CBR).

Contrôlez l'accès à vos points d'extrémité de services publics et privés à l'aide de règles de restriction basées sur le contexte (CBR).

Après avoir autorisé les utilisateurs à accéder à votre cluster via IBM Cloud IAM, vous pouvez ajouter une deuxième couche de sécurité en créant des règles CBR pour les points de terminaison des services publics et privés de votre cluster. Seules les demandes autorisées adressées au maître de la grappe et provenant de sous-réseaux figurant dans les règles CBR seront autorisées.

Si vous souhaitez autoriser les requêtes provenant d'un VPC différent de celui dans lequel se trouve votre cluster, vous devez inclure l'adresse IP du point de terminaison du service en nuage pour ce VPC dans les règles CBR.

Par exemple, pour accéder au noeud final de service cloud privé de votre cluster, vous devez vous connecter à votre réseau classique IBM Cloud ou à votre réseau VPC via un VPN ou IBM Cloud Direct Link. Vous pouvez spécifier uniquement le sous-réseau pour le tunnel VPN ou Direct Link dans vos règles CBR afin que seuls les utilisateurs autorisés de votre organisation puissent accéder au point final du service de cloud privé à partir de ce sous-réseau.

Les règles CBR publiques (si votre cluster dispose d'un point de terminaison de service public) peuvent également contribuer à empêcher les utilisateurs d'accéder à votre cluster après que leur autorisation a été révoquée. Lorsqu'un utilisateur quitte votre organisation, vous retirez ses droits IBM Cloud IAM qui lui permettent d'accéder au cluster. Cependant, l'utilisateur peut avoir copié le fichier admin kubeconfig d'un cluster, ce qui lui donne accès à ce cluster. Si vous disposez d'une règle CBR publique qui n'autorise l'accès à vos maîtres de cluster qu'à partir de sous-réseaux publics connus dont votre organisation est propriétaire, la tentative d'accès de l'utilisateur à partir d'une autre adresse IP publique sera bloquée.

Les sous-réseaux des nœuds de travail sont automatiquement ajoutés et supprimés de l'implémentation CBR du backend (mais pas des règles/zones CBR), de sorte que les nœuds de travail peuvent toujours accéder au maître du cluster et que les utilisateurs n'ont pas besoin de les ajouter spécifiquement à leurs propres règles CBR.

Pour en savoir plus sur la protection de votre cluster avec des règles CBR, voir Protection des ressources du cluster avec des restrictions basées sur le contexte et Exemple de scénarios de restrictions basées sur le contexte