IBM Cloud Docs
Acessando clusters Red Hat OpenShift

Acessando clusters Red Hat OpenShift

Depois que seu cluster do Red Hat® OpenShift® on IBM Cloud® é criado, é possível começar a trabalhar com seu cluster acessando-o.

Pré-requisitos

  1. Instalar as ferramentas de CLI necessárias Para acesso rápido a recursos de teste em seu cluster, também é possível usar o IBM Cloud Shell.
  2. Crie seu cluster Red Hat OpenShift.
  3. Se a sua rede estiver protegida por um firewall da empresa, permita o acesso aos terminais e portas de API do IBM Cloud e do Red Hat OpenShift on IBM Cloud. Para clusters VPC com apenas o terminal em serviço de nuvem privada ativado, não é possível testar a conexão com o seu cluster até configurar um VPN VPN com a sub-rede do terminal em serviço em nuvem.
  4. Verifique se o cluster está em um estado de funcionamento executando ibmcloud oc cluster get -c <cluster_name_or_ID>. Se seu cluster não estiver em um estado funcional, revise o guia Depurando clusters para obter ajuda. Por exemplo, se o seu cluster é provisionado em uma conta protegida por um dispositivo de gateway do firewall, deve-se definir suas configurações de firewall para permitir o tráfego de saída para as portas e os endereços IP apropriados.
  5. Localize o terminal em serviço do seu cluster.
  6. Se algum usuário da sua conta usar autenticação multifatorial (MFA), como TOTP, certifique-se de habilitá-la para todos os usuários no nível da conta. Para usar a MFA, ela deve estar habilitada no nível da conta para evitar erros de autenticação.

Acessando clusters por meio do terminal em serviço de nuvem pública

Para clusters do Red Hat OpenShift com um terminal em serviço de nuvem pública, é possível efetuar login no seu cluster por meio do console ou da CLI.

Conectando-se ao cluster por meio do console

É possível acessar rapidamente seu cluster Red Hat OpenShift on IBM Cloud por meio do console.

  1. No console, clique no cluster que você deseja acessar.
  2. Clique no console da web do Red Hat OpenShift.
  3. Para continuar trabalhando na linha de comandos, clique em seu nome do perfil, como IAM#name@email.com e, em seguida, clique em Copiar comando de login. Dependendo de sua versão do cluster, efetue login em seu cluster por meio da linha de comandos da forma seguir.
    • Versão 4: clique em Exibir token, copie o comando oc login e cole o comando em sua linha de comandos.

Por motivos de segurança, primeiro efetue logout do console do IBM Cloud e depois efetue logout do console da web do Red Hat OpenShift antes de fechar o seu navegador. Deve-se concluir ambas as etapas na ordem especificada para efetuar logout com sucesso do console da web do Red Hat OpenShift.

O que vem a seguir?
Tente Implementando apps por meio do console.

Conectando-se ao cluster por meio da CLI

Geralmente, é possível usar o console da web do Red Hat OpenShift para obter o token oc login para acessar seu cluster. Se você não puder ou não quiser abrir o console do Red Hat OpenShift , escolha entre as opções a seguir para efetuar login em seu cluster Red Hat OpenShift on IBM Cloud usando a CLI.

Escolha entre as seguintes opções.

  • Efetuar login como administrador:
    1. Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
    2. Configure seu contexto de linha de comando para o cluster e faça download dos certificados TLS e arquivos de permissão do administrador.
      ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
      
  • Efetue login com uma chave de API: consulte Usando uma chave de API para efetuar login no Red Hat OpenShift.
  • Efetuar login com uma senha do IBM Cloud:
    1. Obtenha a URL do mestre de seu cluster na saída do comando a seguir.
      ibmcloud oc cluster get -c <cluster_name_or_ID>
      
    2. Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
      https://iam.cloud.ibm.com/identity/passcode
      
    3. Efetue login com seu IBMid e copie a senha.
    4. Efetue login em seu cluster com a senha.
      oc login -u passcode -p <iam_passcode> --server=<master_URL>
      

Acessando clusters por meio do terminal em serviço de nuvem privada

Permitir que usuários de cluster autorizados acessem seu cluster VPC ou clássico por meio do terminal em serviço de nuvem privada.

Deseja configurar uma VPN para se conectar ao cluster a partir de sua máquina local? Confira Acessando clusters privados usando a VPN do Wireguard.

Acessando clusters VPC por meio do terminal em serviço de nuvem privada

O principal do Red Hat OpenShift é acessível por meio do terminal em serviço de nuvem privada se os usuários de cluster autorizados estiverem na sua rede privada da IBM Cloud ou estiverem conectados à rede privada, como por meio de uma conexão VPN de VPC. No entanto, a comunicação com o principal do Kubernetes por meio do terminal em serviço de nuvem privada deve passar pelo intervalo de endereço IP 166.X.X.X, que deve ser definido no gateway VPN e na configuração de conexão.

  1. Configure a sua VPN da IBM Cloud VPC e conecte-se à sua rede privada por meio da VPN.

    1. Configure um gateway de VPN em sua máquina local.
    2. Crie um gateway de VPN em seu VPC e crie a conexão entre o gateway de VPN da VPC e o seu gateway de VPN local. Na seção Nova conexão VPN para VPC, inclua a sub-rede 166.8.0.0/14 no campo Sub-redes locais. Se você tiver um cluster multizona, repita essa etapa para configurar um gateway VPC em uma sub-rede em cada zona na qual você tem nós do trabalhador.
    3. Verifique se você está conectado à rede privada por meio de sua conexão VPN da IBM Cloud VPC.
  2. Para efetuar login em seu cluster, escolha entre as opções a seguir.

    • Efetuar login como administrador:
      1. Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
      2. Configure seu contexto de linha de comando para o cluster e faça download dos certificados TLS e arquivos de permissão do administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Efetue login com uma chave de API: consulte Usando uma chave de API para efetuar login no Red Hat OpenShift.
    • Efetuar login com uma senha do IBM Cloud:
      1. Obtenha a URL do terminal em serviço privado de seu cluster na saída do comando a seguir.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Efetue login com seu IBMid e copie a senha.
      4. Efetue login em seu cluster com a senha.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  3. Verifique se os comandos oc são executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.

    oc version
    

    Saída de exemplo

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

Acessando clusters clássicos por meio do terminal em serviço de nuvem privada

O principal do Red Hat OpenShift é acessível por meio do terminal em serviço de nuvem privada se os usuários de cluster autorizados estiverem em sua rede privada da IBM Cloud ou estiverem conectados à rede privada, como por meio de uma conexão VPN clássica ou IBM Cloud Direct Link. No entanto, a comunicação com o mestre do Kubernetes pelo terminal em serviço de nuvem privada deve passar pelo intervalo de endereço IP 166.X.X.X, que não é roteável por meio de uma conexão VPN clássica ou por meio do IBM Cloud Direct Link. É possível expor o terminal em serviço de nuvem privada do principal para os usuários de cluster usando um balanceador de carga de rede (NLB) privado. O NLB privado expõe o terminal em serviço de nuvem privada do principal como um intervalo de endereço IP interno 10.X.X.X que os usuários podem acessar com a conexão VPN ou do IBM Cloud Direct Link. Se você tiver ativado apenas o terminal em serviço de nuvem privada, será possível usar o console da web do Red Hat OpenShift para criar o NLB privado.

  1. Efetue login no seu cluster do Red Hat OpenShift usando o terminal em serviço de nuvem pública.

  2. Obtenha a URL e a porta do terminal em serviço de nuvem privada para seu cluster.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    

    Nesta saída de exemplo, a URL do terminal em serviço privado é 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. Crie um arquivo YAML que é denominado oc-api-via-nlb.yaml. Esse YAML cria um serviço privado LoadBalancer e expõe o terminal em serviço de nuvem privada por meio desse NLB. Substitua <private_service_endpoint_port> pela porta localizada na etapa anterior.

    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. Para criar o NLB privado e o terminal:

    1. Aplique o arquivo de configuração que você criou anteriormente.
      oc apply -f oc-api-via-nlb.yaml
      
    2. Verifique se o NLB oc-api-via-nlb está criado. Na saída, observe o 10.x.x.x endereço IP EXTERNO. Este endereço IP expõe o terminal em serviço de nuvem privada para o cluster mestre na porta que você especificou no seu arquivo YAML.
      oc get svc -o wide
      
      Nesta saída de exemplo, o endereço IP para o terminal em serviço de nuvem privada do mestre é 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. Nas máquinas do cliente nas quais você ou seus usuários executam comandos oc, inclua o endereço IP do NLB e a URL do terminal em serviço da nuvem privada no arquivo /etc/hosts. Não inclua nenhuma porta no endereço IP e URL e não inclua https:// na URL.

    • Para usuários do macOS e Linux:

      sudo nano /etc/hosts
      
    • Para usuários do Windows:

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

      Dependendo de suas permissões de máquina local, talvez seja necessário executar o Notepad como um administrador para editar o arquivo de hosts.

      Texto de exemplo a ser incluído:

      10.186.92.42      c1.private.us-east.containers.cloud.ibm.com
      
  6. Verifique se você está conectado à rede privada por meio de uma conexão de VPN ou do IBM Cloud Direct Link.

  7. Efetue login em seu cluster escolhendo uma das opções a seguir.

    • Efetuar login como administrador:
      1. Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
      2. Configure seu contexto de linha de comando para o cluster e faça download dos certificados TLS e arquivos de permissão do administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Efetue login com uma chave de API: consulte Usando uma chave de API para efetuar login no Red Hat OpenShift.
    • Efetuar login com uma senha do IBM Cloud:
      1. Obtenha a URL do terminal em serviço privado de seu cluster na saída do comando a seguir.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Efetue login com seu IBMid e copie a senha.
      4. Efetue login em seu cluster com a senha.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  8. Verifique se os comandos oc são executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.

    oc version
    

    Saída de exemplo

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

Acessando clusters Red Hat OpenShift no Satellite

Depois que você criar um cluster Red Hat OpenShift em seu local do Satellite, será possível começar a trabalhar com o seu cluster acessando-o.

Ao acessar seu cluster e executar oc get nodes os oc describe node <worker_node> comandos master,workercluster-manager/cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster-manager-cluster- Em clusters OpenShift Container Platform, os operadores usam a função principal como umnodeSelector` para que o OCP possa implementar componentes padrão que são controlados por operadores, como o registro interno, em seu cluster. Os hosts do Satellite que você designou à sua função de cluster como nós do trabalhador apenas e nenhum processo de nó principal, como o servidor de API ou o planejador de Kubernetes, são executados em seus nós do trabalhador.

Acessando clusters por meio da URL de serviço de cluster

Conecte-se ao seu cluster por meio de sua URL de serviço. Essa URL é um dos subdomínios de localização do Satellite e uma porta de nó, que é formatada como https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710.

Se seus hosts de localização tiverem conectividade de rede privada apenas ou se você usar os hosts do Amazon Web Services, do Google Cloud Platform e do Microsoft Azure, esteja conectado à rede privada dos seus hosts, como por meio de acesso VPN, para se conectar ao seu cluster e acessar o console da web do Red Hat OpenShift. Como alternativa, se seus hosts tiverem conectividade de rede pública, será possível testar o acesso ao seu cluster mudando os registros de DNS de seu cluster e de sua localização para usar os endereços IP públicos de seus hosts.

É possível acessar rapidamente seu cluster Red Hat OpenShift on IBM Cloud por meio do console.

  1. No console, clique no cluster que você deseja acessar.
  2. Clique no console da web do Red Hat OpenShift.
  3. Clique em seu nome do perfil, como IAM#name@email.com e, em seguida, clique em Copiar comando de login.
  4. Clique em Exibir token e copie o comando oc login.
  5. Cole o comando em sua linha de comandos.

Por motivos de segurança, primeiro efetue logout do console do IBM Cloud e depois efetue logout do console da web do Red Hat OpenShift antes de fechar o seu navegador. Deve-se concluir ambas as etapas na ordem especificada para efetuar logout com sucesso do console da web do Red Hat OpenShift.

Se você não puder ou não quiser abrir o console do Red Hat OpenShift , escolha entre as opções a seguir para efetuar login em seu cluster Red Hat OpenShift on IBM Cloud usando a CLI.

Acessando clusters por meio da rede pública

Se seus hosts tiverem conectividade de rede pública e você desejar acessar seu cluster por meio da sua máquina local sem estar conectado à rede privada dos seus hosts, será possível atualizar opcionalmente o subdomínio do cluster e o registro DNS da localização para usar os endereços IP públicos de seus hosts.

Para a maioria das configurações de localização, os endereços IP privados dos seus hosts são registrados para o registro DNS da localização de modo que seja possível acessar seu cluster apenas se você estiver conectado à rede privada do provedor de nuvem.

Por exemplo, se você usar hosts do Amazon Web Services, do Google Cloud Platform ou do Microsoft Azure ou se a interface de rede padrão dos seus hosts for privada, o registro DNS da localização será acessível apenas na rede privada.

Para executar comandos kubectl ou oc com relação ao seu cluster ou acessar o console da web do Red Hat OpenShift, deve-se estar conectado à rede privada dos seus hosts, como por meio do acesso de VPN. Entretanto, se você desejar acessar seu cluster por meio da rede pública, como para testar o acesso ao seu cluster por meio da máquina local, será possível mudar os registros DNS para sua localização e os subdomínios do cluster para usar os IPs públicos dos seus hosts em vez disso.

Tornar a sua localização e os subdomínios do cluster disponíveis fora da rede privada dos seus hosts para seus usuários de cluster autorizados não é recomendado para cargas de trabalho de nível de produção.

  1. Revise os subdomínios de localização e verifique os Registros para os endereços IP privados dos hosts que estão registrados no DNS para o subdomínio.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  2. Recupere os endereços IP públicos correspondentes de seus hosts.
    ibmcloud sat host ls --location <location_name_or_ID>
    
  3. Atualize o registro DNS do subdomínio do local com os endereços IP públicos de cada host no plano de controle.
    ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP>
    
  4. Verifique se os endereços IP públicos estão registrados com o registro DNS do seu local.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  5. Obtenha o Nome do host para o seu cluster no formato <service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud e observe os IP(s) privados que foram registrados automaticamente.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    
  6. Inclua os endereços IP públicos dos hosts que são designados como nós do trabalhador a este cluster para o subdomínio do seu cluster. Repita este comando para cada endereço IP público do host.
    ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  7. Remova os endereços IP privados do subdomínio do seu cluster. Repita este comando para todos os endereços IP privados que você recuperou anteriormente.
    ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  8. Verifique se os endereços IP públicos estão registrados com seu subdomínio de cluster.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    

Acessando clusters VPC através do Virtual Private Endpoint Gateway

Gateway de Terminal Privado Virtual é criado para clusters VPC automaticamente. O Kubernetes mestre pode ser acessado por meio desse gateway de ponto de extremidade privado virtual se os usuários autorizados do cluster estiverem conectados ao mesmo VPC onde o cluster está implantado, como por meio de uma IBM Cloud VPC VPN. Nesse caso, o kubeconfig é configurado com o Virtual Private Endpoint (VPE) URL que é um nome DNS privado e só pode ser resolvido pelo serviço IBM Cloud VPC DNS privado. Os endereços do IBM Cloud VPC servidor DNS privado são 161.26.0.7 e 161.26.0.8.

Para clusters que executam a versão 4.13: Se você habilitou apenas o endpoint do serviço de nuvem privada durante a criação do cluster, o endpoint privado virtual da sua VPC é usado por padrão para acessar Red Hat OpenShift componentes como o console Red Hat OpenShift da web ou OperatorHub. Deve-se estar conectado à rede privada do VPC, por exemplo, por meio de uma conexão VPN, para acessar esses componentes ou executar comandos kubectl em seu cluster. Observe que para acessar o console por meio do VPE, deve-se ser capaz de acessar o cloud.ibm.com, que requer conectividade pública.

  1. Configure o seu IBM Cloud VPC VPN e conecte-se ao seu VPC através de VPN.

    1. Configure um client-to-site ou site-to-site VPN para o seu VPC. Por exemplo, você pode optar por configurar uma conexão de cliente para site com um Cliente VPN.
    2. Para setups VPN client-to-site, você deve especificar os endereços de serviço DNS Private do IBM Cloud VPC quando você provisionar o servidor VPN como mencionado nas considerações. Você também deve criar uma rota VPN depois que o servidor VPN for provisionado, com o destino 161.26.0.0/16 e ação translate.
    3. Para setups VPN do site para site, você deve seguir o Acessando terminais de serviço através de guia VPN e configurar os endereços de serviço DNS Private do IBM Cloud VPC.
    4. Verifique se você está conectado à VPC por meio da sua conexão VPN IBM Cloud VPC.
  2. Para efetuar login em seu cluster, escolha entre as opções a seguir.

    • Efetuar login como administrador:
      1. Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
      2. Configure seu contexto de linha de comando para o cluster e faça download dos certificados TLS e arquivos de permissão do administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
        
    • Efetue login com uma chave de API: consulte Usando uma chave de API para efetuar login no Red Hat OpenShift.
    • Efetuar login com uma senha do IBM Cloud:
      1. Obtenha o endereço do VPE e o mestre URL na saída do comando a seguir.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Efetue login com seu IBMid e copie a senha.
      4. Efetue login em seu cluster com a senha.
        oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
        
        O procedimento de login notificará aquele certificado assinado por uma autoridade desconhecida, uma vez que é um certificado autoassinado gerado pela IBM.
  3. Verifique se os comandos oc são executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.

    oc version
    

    Saída de exemplo

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

Acessando clusters por meio de ferramentas de automação usando uma chave de API

O Red Hat OpenShift on IBM Cloud é integrado com o IBM Cloud Identity and Access Management (IAM). Com o IAM, é possível autenticar usuários e serviços usando suas identidades do IAM e autorizar ações com funções de acesso e políticas. Quando você se autentica como usuário por meio do console Red Hat OpenShift, sua identidade IAM é usada para gerar um token de login Red Hat OpenShift que você pode usar para fazer login na linha de comando. É possível automatizar a criação de log em seu cluster criando uma chave de API do IAM ou um ID de serviço a ser usado para o comando oc login.

Usando uma chave de API para fazer login em clusters

Você pode criar uma chave API IAM IBM Cloud e, em seguida, usar a chave API para fazer login em um cluster Red Hat OpenShift. Com as chaves de API, é possível usar as credenciais de um usuário ou uma conta compartilhada para acessar um cluster, em vez de efetuar login individualmente. Também é possível criar uma chave de API para um ID de serviço. Para obter mais informações, veja Entendendo chaves de API.

  1. Crie uma chave de API do IBM Cloud. Salve sua chave de API em um local seguro. Não é possível recuperar a chave de API novamente. Se você deseja exportar a saída para um arquivo em sua máquina local, inclua a --file <path>/<file_name> opção.

    ibmcloud iam api-key-create <name>
    
  2. Configure seu cluster para incluir o usuário da chave de API em suas políticas RBAC de cluster e para configurar o contexto de sessão para o servidor de cluster.

    1. Efetue login no IBM Cloud com as credenciais de chave de API.
      ibmcloud login --apikey <API_key>
      
    2. Faça download e inclua o arquivo de configuração kubeconfig para o seu cluster em seu kubeconfig existente em ~/.kube/config ou no último arquivo na variável de ambiente KUBECONFIG. Observação: se você habilitou o endpoint do serviço de nuvem privada e deseja usá-lo para o contexto do cluster, inclua a --endpoint private opção. Para usar o terminal em serviço de nuvem privada a fim de se conectar ao cluster, deve-se estar na rede privada da IBM Cloud ou conectado a ela por meio de uma Conexão VPN de VPC. No caso da infraestrutura clássica, é necessário ter uma conexão VPN clássica ou o IBM Cloud Direct Link.
      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  3. Troque suas credenciais da chave API IAM IBM Cloud por um token de acesso Red Hat OpenShift. É possível efetuar login por meio da CLI ou da API. Para obter mais informações, consulte o Red Hat OpenShift docs.

    Efetue login usando a CLI do oc: Efetue login em seu cluster com o comando oc login. O nome do usuário (-u) é apikey e a senha (-p) é o seu valor da chave de API do IBM Cloud IAM. Para usar o endpoint do serviço de nuvem privada, inclua a --server=<private_service_endpoint> opção.

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

    Efetue login executando solicitações de API do Red Hat OpenShift diretamente com relação ao seu cluster: Efetue login em seu cluster com a API, como por meio de uma solicitação de curl.

    1. Obtenha a URL do mestre do seu cluster.

      ibmcloud oc cluster get -c <cluster_name_or_ID>
      

      Saída de exemplo

      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. Obtenha o terminal de token do servidor Red Hat OpenShift oauth.

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

      Saída de exemplo

      <token_endpoint>/oauth/token
      

      : tela}

    3. Efetue login no cluster com o terminal que você recuperou anteriormente. Substitua <URL> por do <token_endpoint> servidor oauth.

      Exemplo de solicitação curl:

      curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv
      
    4. Na resposta Local, localize o access_token, como no exemplo a seguir.

      < 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. Use a URL do cluster mestre e o token de acesso para acessar a API do Red Hat OpenShift, como para listar todos os pods em seu cluster. Para obter mais informações, consulte a documentação da API Red Hat OpenShift.

      Exemplo de solicitação curl:

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

Usando um ID de serviço para fazer login em clusters

Você pode criar um ID de serviço IAM ( IBM Cloud ), criar uma chave API para o ID de serviço e, em seguida, usar a chave API para fazer login em um cluster Red Hat OpenShift. É possível usar os IDs de serviço para que os apps que estão hospedados em outros clusters ou nuvens possam acessar os serviços de seu cluster. Como os IDs de serviço não estão ligados a um usuário específico, seus apps podem se autenticar se os usuários individuais deixarem sua conta. Para obter mais informações, consulte Criando e trabalhando com IDs de serviço.

  1. Crie um ID de serviço do IBM Cloud IAM para seu cluster que é usado para as políticas do IAM e credenciais de chave de API. Certifique-se de fornecer ao ID do serviço uma descrição que ajude a recuperar o ID de serviço posteriormente, como incluir o nome do cluster.

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

    Saída de exemplo

    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. Crie uma política do IBM Cloud IAM customizada para seu ID de serviço de cluster que conceda acesso ao 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>
    
    Entendendo os componentes deste comando
    Parâmetro Descrição
    <cluster_service_ID> Obrigatório. Insira o ID de serviço que você criou anteriormente para seu cluster Red Hat OpenShift.
    --service-name containers-kubernetes Obrigatório. Insira containers-kubernetes para que a política do IAM seja para os clusters Red Hat OpenShift on IBM Cloud.
    --roles <service_access_role> Obrigatório. Insira a função de acesso que você deseja que o ID de serviço tenha para seu cluster Red Hat OpenShift. As funções de acesso à plataforma permitem atividades de gerenciamento de cluster, como a criação de nós do trabalhador. As funções de acesso de serviço correspondem às funções RBAC que permitem atividades de gerenciamento do Red Hat OpenShift dentro do cluster, assim como para recursos do Kubernetes, como pods e espaços de nomes. Para várias funções, inclua uma lista separada por vírgulas. Os valores possíveis são Administrator, Operator, Editor e Viewer (funções de acesso à plataforma) e Reader, Writer e Manager (funções de acesso de serviço).
    --service-instance <cluster_ID> Para restringir a política a um cluster específico, insira o ID do cluster. Para obter seu ID do cluster, execute ibmcloud oc clusters. Se você não incluir a instância de serviço, a política de acesso concederá o acesso ao ID de serviço a todos os seus clusters, Kubernetes e Red Hat OpenShift. Também é possível definir o escopo da política de acesso para uma região (--region) ou grupo de recursos (--resource-group-name).
  3. Crie uma chave de API para o ID de serviço. Nomeie a chave de API semelhante ao seu ID de serviço, e inclua o ID de serviço que você criou anteriormente, <cluster_name>-id. Certifique-se de dar à chave de API uma descrição que ajuda a recuperar a chave posteriormente. Salve sua chave de API em um local seguro. Não é possível recuperar a chave de API novamente. Se você deseja exportar a saída para um arquivo em sua máquina local, inclua a --file <path>/<file_name> opção.

    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>"
    

    Saída de exemplo

    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. Configure seu cluster para incluir o usuário do ID de serviço nas políticas RBAC do cluster e para configurar o contexto de sessão para o servidor de cluster.

    1. Efetue login no IBM Cloud com as credenciais de chave de API do ID de serviço.

      ibmcloud login --apikey <API_key>
      
    2. Faça download e inclua o arquivo de configuração kubeconfig para o seu cluster em seu kubeconfig existente em ~/.kube/config ou no último arquivo na variável de ambiente KUBECONFIG. Observação: se você habilitou o endpoint do serviço de nuvem privada e deseja usá-lo para o contexto do cluster, inclua a --endpoint private opção. Para usar o terminal em serviço de nuvem privada a fim de se conectar ao cluster, deve-se estar na rede privada da IBM Cloud ou conectado a ela por meio de uma Conexão VPN de VPC. No caso da infraestrutura clássica, é necessário ter uma conexão VPN clássica ou o IBM Cloud Direct Link.

      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  5. Use a chave de API do ID do serviço para fazer login em seu cluster Red Hat OpenShift. O nome do usuário (-u) é apikey e a senha (-p) é o seu valor da chave de API. Para usar o endpoint do serviço de nuvem privada, inclua a --server=<private_service_endpoint> opção.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    
  6. Verifique se o ID do serviço pode executar as ações que você autorizou.

    Exemplo: se você tiver designado uma função de acesso de serviço Reader, o ID de serviço poderá listar pods no seu projeto do Red Hat OpenShift.

    oc get pods
    

    Exemplo: se você tiver designado uma função de acesso de serviço Manager, o ID de serviço poderá listar os usuários no seu cluster do Red Hat OpenShift. O ID de seu ID de serviço do IAM está na saída Identidades. Outros usuários individuais podem ser identificados por seus endereços de e-mail e IBMid.

    oc get users
    

    Saída de exemplo

    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
    

Proteção de clusters usando restrições baseadas em contexto

As listas de permissão de ponto de extremidade de serviço privado não são mais suportadas. Migrar de listas de permissão de endpoints de serviços privados para restrições baseadas em contexto o mais rápido possível. Para obter etapas específicas de migração, consulte Migração de uma lista de permissões de ponto de extremidade de serviço privado para restrições baseadas em contexto(CBR).

Controle o acesso aos seus endpoints de serviços públicos e privados usando regras de restrição baseadas em contexto (CBR).

Depois de conceder aos usuários acesso ao cluster por meio do IBM Cloud IAM, é possível adicionar uma camada secundária de segurança criando regras de CBR para o endpoint de serviço público e privado do cluster. Somente serão permitidas solicitações autorizadas ao mestre do cluster originadas de sub-redes nas regras de CBR.

Se você deseja permitir solicitações de uma VPC diferente daquela em que seu cluster está, é necessário incluir o endereço IP do ponto de extremidade do serviço em nuvem para essa VPC nas regras CBR.

Por exemplo, para acessar o terminal em serviço de nuvem privada de seu cluster, deve-se conectar à rede clássica da IBM Cloud ou à rede VPC por meio de uma VPN ou do IBM Cloud Direct Link. Você pode especificar apenas a sub-rede para o túnel VPN ou túnel de Direct Link e para suas regras CBR, de modo que apenas usuários autorizados em sua organização possam acessar o endpoint do serviço de nuvem privada a partir dessa sub-rede.

As regras de CBR público (se o cluster tiver um endpoint de serviço público) também podem ajudar a impedir que os usuários acessem o cluster depois que a autorização for revogada. Quando um usuário deixa a sua organização, você remove suas permissões do IBM Cloud IAM que concedem acesso a ele ao cluster. No entanto, o usuário pode ter copiado o arquivo admin kubeconfig de um cluster, dando-lhe acesso a esse cluster. Se você tiver uma regra pública de CBR que permita apenas o acesso aos mestres de cluster a partir de sub-redes públicas conhecidas de propriedade da sua organização, a tentativa de acesso do usuário a partir de outro endereço IP público será bloqueada.

As sub-redes dos nós de trabalho são automaticamente adicionadas e removidas da implementação de CBR de backend (mas não das regras/zonas de CBR), de modo que os nós de trabalho sempre possam acessar o mestre do cluster e os usuários não precisem adicioná-las especificamente às suas próprias regras de CBR.

Para saber mais sobre como proteger seu cluster com regras de CBR, consulte Proteção de recursos de cluster com restrições baseadas em contexto e Exemplo de cenários de restrições baseadas em contexto