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
- 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.
- Crie seu cluster Red Hat OpenShift.
- 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.
- 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. - Localize o terminal em serviço do seu cluster.
- Clusters clássicos ou VPC: na saída dos detalhes do cluster da etapa anterior, verifique a URL de Terminal em serviço privado ou Público do cluster.
- URL do terminal em serviço público apenas: continue com Acessando clusters por meio do terminal em serviço de nuvem pública.
- Ambas as URLs de terminal em serviço: é possível acessar seu cluster por meio do terminal em serviço público ou privado.
- Clusters do IBM Cloud Satellite: continue com Acessando clusters no Satellite.
- Clusters clássicos ou VPC: na saída dos detalhes do cluster da etapa anterior, verifique a URL de Terminal em serviço privado ou Público do cluster.
- 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.
- No console, clique no cluster que você deseja acessar.
- Clique no console da web do Red Hat OpenShift.
- Para continuar trabalhando na linha de comandos, clique em seu nome do perfil, como
IAM#name@email.come, 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 logine cole o comando em sua linha de comandos.
- Versão 4: clique em Exibir token, copie o comando
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:
- Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
- 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:
- Obtenha a URL do mestre de seu cluster na saída do comando a seguir.
ibmcloud oc cluster get -c <cluster_name_or_ID> - Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
https://iam.cloud.ibm.com/identity/passcode - Efetue login com seu IBMid e copie a senha.
- Efetue login em seu cluster com a senha.
oc login -u passcode -p <iam_passcode> --server=<master_URL>
- Obtenha a URL do mestre de seu cluster na saída do comando a seguir.
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.
-
Configure a sua VPN da IBM Cloud VPC e conecte-se à sua rede privada por meio da VPN.
- Configure um gateway de VPN em sua máquina local.
- 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/14no 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. - Verifique se você está conectado à rede privada por meio de sua conexão VPN da IBM Cloud VPC.
-
Para efetuar login em seu cluster, escolha entre as opções a seguir.
- Efetuar login como administrador:
- Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
- 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:
- 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> - Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
https://iam.cloud.ibm.com/identity/passcode - Efetue login com seu IBMid e copie a senha.
- Efetue login em seu cluster com a senha.
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- Obtenha a URL do terminal em serviço privado de seu cluster na saída do comando a seguir.
- Efetuar login como administrador:
-
Verifique se os comandos
ocsão executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.oc versionSaí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.
-
Efetue login no seu cluster do Red Hat OpenShift usando o terminal em serviço de nuvem pública.
-
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. ... -
Crie um arquivo YAML que é denominado
oc-api-via-nlb.yaml. Esse YAML cria um serviço privadoLoadBalancere 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 -
Para criar o NLB privado e o terminal:
- Aplique o arquivo de configuração que você criou anteriormente.
oc apply -f oc-api-via-nlb.yaml - Verifique se o NLB
oc-api-via-nlbestá criado. Na saída, observe o10.x.x.xendereç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.
Nesta saída de exemplo, o endereço IP para o terminal em serviço de nuvem privada do mestre éoc get svc -o wide10.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> ...
- Aplique o arquivo de configuração que você criou anteriormente.
-
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 incluahttps://na URL.-
Para usuários do macOS e Linux:
sudo nano /etc/hosts -
Para usuários do Windows:
notepad C:\Windows\System32\drivers\etc\hostsDependendo 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
-
-
Verifique se você está conectado à rede privada por meio de uma conexão de VPN ou do IBM Cloud Direct Link.
-
Efetue login em seu cluster escolhendo uma das opções a seguir.
- Efetuar login como administrador:
- Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
- 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:
- 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> - Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
https://iam.cloud.ibm.com/identity/passcode - Efetue login com seu IBMid e copie a senha.
- Efetue login em seu cluster com a senha.
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- Obtenha a URL do terminal em serviço privado de seu cluster na saída do comando a seguir.
- Efetuar login como administrador:
-
Verifique se os comandos
ocsão executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.oc versionSaí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.
- No console, clique no cluster que você deseja acessar.
- Clique no console da web do Red Hat OpenShift.
- Clique em seu nome do perfil, como
IAM#name@email.come, em seguida, clique em Copiar comando de login. - Clique em Exibir token e copie o comando
oc login. - 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.
- Efetuar login como administrador:
- Certifique-se de ter a função de acesso de plataforma do IAM de Administrador ao cluster.
- Configure seu contexto de linha de comando para o cluster e faça download dos certificados TLS e arquivos de permissão do administrador. Para obter mais informações, consulte a documentação da CLI.
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.
Acessando clusters de dentro da rede privada da IBM Cloud
Se você estiver conectado à rede privada da IBM Cloud, será possível usar o terminal de link do Satellite que é gerado automaticamente para o seu cluster. Esse terminal permite se conectar por meio do servidor de túnel de Link seguro com o
cluster mestre no plano de controle da sua localização. O terminal consiste no nome do host do servidor do túnel Link e em uma porta do nó, que é formatada como c-02.<region>.link.satellite.cloud.ibm.com:<port>.
Para se conectar ao seu Satellite cluster usando o endpoint Link, por exemplo, --endpoint link na CLI, você deve seguir as etapas para configurar uma Origem em sua Localização. Esta fonte permite o acesso às suas
APIs de cluster através do terminal Link. Para obter mais informações, consulte Acessando seus pontos finais Red Hat OpenShift de Satellite link da API.
- Certifique-se de ter a função de acesso de plataforma do IAM de Administrador ao cluster.
- Configure seu contexto de linha de comandos para o cluster usando o terminal Link e faça download dos certificados TLS e arquivos de permissão do administrador. Para obter mais informações, consulte a documentação da CLI.
ibmcloud oc cluster config -c <cluster_name_or_ID> --endpoint link --admin
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.
- 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> - Recupere os endereços IP públicos correspondentes de seus hosts.
ibmcloud sat host ls --location <location_name_or_ID> - 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> - 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> - Obtenha o Nome do host para o seu cluster no formato
<service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloude observe os IP(s) privados que foram registrados automaticamente.ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID> - 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> - 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> - 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.
-
Configure o seu IBM Cloud VPC VPN e conecte-se ao seu VPC através de VPN.
- 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.
- 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/16e açãotranslate. - 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.
- Verifique se você está conectado à VPC por meio da sua conexão VPN IBM Cloud VPC.
-
Para efetuar login em seu cluster, escolha entre as opções a seguir.
- Efetuar login como administrador:
- Certifique-se de ter a função de acesso de plataforma de Administrador ao cluster.
- 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:
- 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> - Em seu navegador, abra o website de senha do IBM Cloud IAM a seguir.
https://iam.cloud.ibm.com/identity/passcode - Efetue login com seu IBMid e copie a senha.
- Efetue login em seu cluster com a senha.
O procedimento de login notificará aquele certificado assinado por uma autoridade desconhecida, uma vez que é um certificado autoassinado gerado pela IBM.oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
- Obtenha o endereço do VPE e o mestre URL na saída do comando a seguir.
- Efetuar login como administrador:
-
Verifique se os comandos
ocsão executados adequadamente com o seu cluster por meio do terminal em serviço de nuvem privada, verificando a versão.oc versionSaí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.
-
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> -
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.
- Efetue login no IBM Cloud com as credenciais de chave de API.
ibmcloud login --apikey <API_key> - Faça download e inclua o arquivo de configuração
kubeconfigpara o seu cluster em seukubeconfigexistente em~/.kube/configou no último arquivo na variável de ambienteKUBECONFIG. 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 privateopçã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]
- Efetue login no IBM Cloud com as credenciais de chave de API.
-
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 comandooc login. O nome do usuário (-u) éapikeye 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.
-
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> ... -
Obtenha o terminal de token do servidor Red Hat OpenShift
oauth.curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpointSaída de exemplo
<token_endpoint>/oauth/token: tela}
-
Efetue login no cluster com o terminal que você recuperou anteriormente. Substitua
<URL>por do<token_endpoint>servidoroauth.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 -
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 ... -
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.
-
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 -
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-kubernetesObrigatório. Insira containers-kubernetespara 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,EditoreViewer(funções de acesso à plataforma) eReader,WritereManager(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). -
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 -
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.
-
Efetue login no IBM Cloud com as credenciais de chave de API do ID de serviço.
ibmcloud login --apikey <API_key> -
Faça download e inclua o arquivo de configuração
kubeconfigpara o seu cluster em seukubeconfigexistente em~/.kube/configou no último arquivo na variável de ambienteKUBECONFIG. 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 privateopçã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]
-
-
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) éapikeye 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>] -
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 podsExemplo: 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 usersSaí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