Implante o Oracle Blockchain Platform Enterprise Edition no Red Hat OpenShift Local

Você pode instalar o Oracle Blockchain Platform Enterprise Edition no Red Hat OpenShift Local para fins de teste e desenvolvimento interno. Não é compatível com ambientes de produção.

O Red Hat OpenShift Local foi projetado para ser executado em um computador local para simplificar a configuração e os testes, e para emular o ambiente de desenvolvimento em nuvem localmente com todas as ferramentas necessárias para desenvolver aplicativos baseados em contêiner. Era anteriormente conhecido como Red Hat CodeReady Containers.

Para obter informações detalhadas sobre o Red Hat OpenShift Local, consulte Red Hat OpenShift Local.

Pré-requisitos:
  • CPUs: 12 ou mais
  • Memória: 30 GB ou mais
  • Tamanho do disco: 150 GB ou mais
  • RedHat OpenShift Local - OpenShift versão 4.15.3 incorporado, CRC (Code Ready Container) versão 2.34.1
  • Sistema operacional: CentOS 8

Esta seção fornece um exemplo de passo a passo da instalação das versões testadas dos pré-requisitos. Consulte a documentação de cada produto para obter informações adicionais e quaisquer modificações necessárias nas instruções de instalação. A instrução a seguir foi testada usando o CentOS 8 como sistema operacional. Outras distribuições do Linux, como Oracle Linux ou Red Hat Enterprise Linux, também podem ser usadas.

Observação:

Quando você instala o Istio como parte das tarefas Instalar Software de Pré-requisito, instale a versão 1.22.1, não a versão mais recente.

Instalar Red Hat OpenShift Local

Siga as etapas abaixo para baixar e instalar o Red Hat OpenShift Local. Para obter informações adicionais, consulte Instalando CodeReady Contêineres.

  1. Navegue até Red Hat OpenShift Local e clique em Instalar OpenShift no seu laptop. Você será redirecionado para uma página de login onde poderá inserir suas credenciais da Red Hat ou criar uma conta se ainda não tiver uma.
  2. Depois de fazer log-in, clique em Clusters e, em seguida, clique na guia Local.
  3. Na página Local, clique em Fazer Download do OpenShift Local e, em seguida, em Fazer download do segredo de extração.
  4. Copie o pacote crc e o segredo de extração que você baixou na etapa anterior para sua VM. Por exemplo:
    scp -r -i ~/.ssh/id_rsa ~/Downloads/crc-linux-amd64.tar.xz <username>@<ip-address>:/tmp
    scp -r -i ~/.ssh/id_rsa ~/Downloads/pull-secret.txt <username>@<ip-address>:/tmp
    cd
  5. Na sua VM, crie um diretório chamado crc e copie o pacote crc e o segredo de extração para esse diretório.
  6. Instale o OpenShift executando o seguinte comando:
    sudo dnf install NetworkManager
    Se um erro começar com Falha ao carregar o plug-in "osmsplugin": nenhum módulo chamado 'librepo' é exibido, execute os comandos a seguir e, em seguida, execute o comando de instalação novamente.
    sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
    
  7. Execute os seguintes comandos para extrair o arquivo:
    cd ~/crc
    tar xvf crc-linux-amd64.tar.xz
  8. Execute os seguintes comandos para mover o arquivo binário para o diretório /bin e atualizar o caminho:
    mkdir -p ~/bin
    cp ~/crc/crc-linux-*-amd64/crc ~/bin
    export PATH=$PATH:$HOME/bin
    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Aumentar o espaço em disco na partição raiz

Se o espaço de partição raiz da VM for menor que 150 GB, execute as etapas a seguir.

  1. Verifique se o disco de inicialização, o sistema de arquivos raiz ou o LVM (Logical Volume Manager) possui pelo menos 150 GB de espaço livre.
  2. Use fdisk para criar uma partição de sistema de arquivos Linux de pelo menos 100 GB (neste exemplo, a nova partição é /dev/sda4).
    sudo fdisk /dev/sda
  3. Use o comando a seguir para adicionar o volume físico a um grupo de volumes.
    sudo vgextend centosvolume /dev/sda4
  4. Use o comando a seguir para aumentar o tamanho do volume lógico.
    sudo lvextend -L+99G /dev/mapper/centosvolume-root
  5. Use o comando a seguir para aumentar o tamanho do sistema de arquivos.
    sudo xfs_growfs /dev/centosvolume/root
    O comando equivalente no Oracle Enterprise Linux é oci_growfs.

Configurar Parâmetros Locais OpenShift

Execute os comandos a seguir para configurar o OpenShift Local para usar 12 núcleos de CPU, 30 GB de memória e 100 GB de espaço em disco.

crc config set cpus 12 
crc config set memory 30720 
crc config set disk-size 100

Faça o Download e Instale o Cliente OpenShift

Execute os comandos a seguir para fazer download e instalar o oc, o software cliente OpenShift.

wget -O ~/crc/openshift-client-linux.tar.gz https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/4.15.3/openshift-client-linux-4.15.3.tar.gz 
tar xvzf openshift-client-linux.tar.gz
sudo mv oc /usr/local/bin

Iniciar o Cluster

Execute os comandos a seguir para configurar, iniciar e verificar o status do cluster. Use o segredo de extração que você baixou quando baixou o Red Hat OpenShift Local.

crc setup 
crc start -p ~/crc/pull-secret.txt
crc status
Uma vez concluída a instalação, serão exibidas informações semelhantes às seguintes:
INFO Adding crc-admin and crc-developer contexts to kubeconfig... 
Started the OpenShift cluster.

The server is accessible via web console at:
  https://console-openshift-console.apps-crc.testing

Log in as administrator:
  Username: kubeadmin
  Password: password  (note this password)

Log in as user:
  Username: developer
  Password: developer

Use the 'oc' command line interface:
  $ eval $(crc oc-env)
  $ oc login -u developer https://api.crc.testing:6443

Instalar o Oracle Blockchain Platform Enterprise Edition

  1. Siga as etapas abaixo para garantir que o Red Hat OpenShift Local esteja ativo e em execução.
    1. Efetue log-in no console.
      oc login -u kubeadmin -p <password> https://api.crc.testing:6443
    2. Verifique se o Red Hat OpenShift Local está acessível.
      oc get nodes
  2. Execute o comando a seguir para definir o perfil Istio. Você deve ter concluído as etapas em Instalar Istio antes de executar os comandos a seguir.
    istioctl install --set profile=openshift --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
  3. Na página Oracle Blockchain Platform Enterprise Edition, clique em Fazer Download e siga as etapas para fazer download do pacote Oracle Blockchain Platform Enterprise Edition, que é de aproximadamente 6,5 GB.
  4. Extraia o arquivo compactado baixado.
    A estrutura de pastas extraída inclui scripts runme para várias plataformas, incluindo OpenShift.
  5. Atualize o arquivo runme-input.yaml com os valores necessários. Também torne os arquivos runme-input.yaml e runme.sh executáveis. Certifique-se de que você possa fazer log-in no registro da conta de usuário especificada no arquivo runme-input.yaml. O seguinte arquivo de exemplo runme-input.yaml pode ser usado como referência:
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: <obpee-release-version>
     
    # Set storageClassName to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 1Gi
    parentDomainName: example.com
    #imagePullTimeout: Use this field to customize the wait time (in seconds) for pulling the required container images from the repository. Default is 1800 seconds.
    imagePullTimeout: 1800
    As variáveis no exemplo têm os seguintes valores:
    • imageRegistryConfiguration.registry é o servidor de registro do contêiner a ser usado. Exemplo: iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix é o caminho do repositório base do contêiner com o registro, no qual as imagens serão enviadas ou extraídas. Exemplo: iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username é o nome do usuário de log-in do registro do contêiner.
    • imageReleaseVersion é a versão da release do Oracle Blockchain Platform Enterprise Edition.
    • controlPlaneStorage.storageClassName é a classe de armazenamento do Kubernetes a ser usada para PVC (PersistentVolumeClaim). Se estiver vazio, o storageClass padrão será usado.
    • controlPlaneStorage.size é o tamanho do PVC para serviços do Blockchain Platform Manager (plano de controle).
    • parentDomainName é o nome de domínio a ser usado para os serviços do Blockchain Platform Manager. Exemplo: example.com.
    • imagePullTimeout é o timeout de espera de extração de imagem em segundos durante a instalação do Oracle Blockchain Platform Enterprise Edition. O padrão são 1800 segundos.
  6. Abra uma nova janela de terminal e vá para o diretório do pacote de distribuição. Siga as etapas solicitadas pela saída do script.
    1. Execute o comando a seguir para tornar o script executável.
      chmod +x runme_openshift.sh
    2. Execute o script a seguir para enviar os contêineres no arquivo compactado para o repositório especificado e, em seguida, instalar o produto.
      ./runme_openshift.sh --publish-images
      Se as imagens do contêiner já tiverem sido carregadas em um repositório, você poderá extraí-las do repositório e instalá-las usando o comando a seguir.
      ./runme_openshift.sh
    • Informe a senha de administrador LDAP padrão (a senha não será exibida): ela é usada para definir a senha do usuário admin para o servidor de autenticação LDAP incorporado.
    • Informe a senha do usuário administrador do plano de controle padrão (a senha não será exibida): ela é usada para definir a senha do usuário administrador do Gerenciador do Blockchain Platform.
    • Informe a senha do <registry name> do registro: ela é usada para estabelecer conexão com o registro de imagens do contêiner (conforme especificado em runme-input.yaml) para fazer download de imagens.
    O script instala os seguintes serviços no namespace obp-cp:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  7. Adicione a linha a seguir ao arquivo /etc/hosts na VM crc.
    <CRC_IP_address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    No exemplo, <CRC_IP_address> é a saída do comando crc ip.
  8. Adicione a linha a seguir ao arquivo /etc/hosts no computador que você usa para se conectar à console do Gerenciador do Blockchain Platform.
    <public_vm_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    No exemplo, <public_vm_ip> é o endereço IP público da VM.
  9. Conclua as etapas a seguir para acessar o Blockchain Platform Manager de um computador cliente. As etapas a seguir usam firewalld para permitir o tráfego de entrada para o servidor e HAProxy para encaminhar o tráfego para a instância Local OpenShift.
    1. Verifique se a entrada a seguir está no arquivo de configuração /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf.
      [main]
              dns=dnsmasq
      O arquivo de configuração da instância dnsmasq, /etc/NetworkManager/dnsmasq.d/crc.conf, pode ter uma aparência semelhante à seguinte:
      server=/crc.testing/198.x.x.x
      server=/apps-crc.testing/198.x.x.x
      198.x.x.x é a saída do comando crc ip. A instância dnsmasq de NetworkManager encaminha solicitações para crc.testing e apps-crc.testing para o servidor DNS 198.x.x.x.
    2. Informe o comando a seguir para instalar as dependências necessárias.
      sudo dnf -y install haproxy policycoreutils-python-utils
    3. Informe os comandos a seguir para configurar o firewall.
      sudo systemctl start firewalld
      sudo firewall-cmd --add-port=80/tcp --permanent
      sudo firewall-cmd --add-port=6443/tcp --permanent
      sudo firewall-cmd --add-port=443/tcp --permanent
      sudo systemctl restart firewalld
      sudo semanage port -a -t http_port_t -p tcp 6443
      sudo semanage port -a -t http_port_t -p tcp 6443
    4. Antes de configurar o HAProxy, você deve saber o endereço IP do servidor e o endereço IP da VM Local do Red Hat OpenShift. Execute os comandos a seguir.
      export SERVER_IP=$(hostname --ip-address)
      export CRC_IP=$(crc ip)
      cd /etc/haproxy;sudo cp haproxy.cfg haproxy.cfg.orig
    5. Substitua o conteúdo do arquivo haproxy.cfg pelo seguinte texto.
      global
      debug
       
      defaults
      log global
      mode http
      timeout connect 0
      timeout client 0
      timeout server 0
       
      frontend apps
      bind SERVER_IP:80
      bind SERVER_IP:443
      option tcplog
      mode tcp
      default_backend apps
       
      backend apps
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:80 check
      server webserver2 CRC_IP:443 check
       
      frontend api
      bind SERVER_IP:6443
      option tcplog
      mode tcp
      default_backend api
       
      backend api
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:6443 check
      
    6. Execute os comandos a seguir para substituir os endereços IP na configuração HAproxy e, em seguida, inicie o HAproxy.
      export CRC_IP=$(crc ip)
      export SERVER_IP=$(hostname --ip-address)
      sudo sed -i "s/CRC_IP/$CRC_IP/g" haproxy.cfg
      sudo sed -i "s/SERVER_IP/$SERVER_IP/g" haproxy.cfg
      sudo systemctl start haproxy

Acessar o Blockchain Platform Manager

Após a instalação, configure a resolução do nome do host para os nomes de host gerados do Gerenciador do Blockchain Platform.
  1. Execute o seguinte comando para obter a lista de nomes de host configurados:
    kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
  2. Configure a resolução de nome de host para esses nomes de host gerados no endereço IP do cluster OpenShift Red Hat em execução adicionando a entrada a seguir ao arquivo /etc/hosts na VM.
    <IP_Address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    No exemplo, <IP_address> é a saída do comando crc ip.
  3. Certifique-se de que a lista de segurança da VM crc permita as portas 443, 6443 e 80 do computador host do cliente.

Agora você pode fazer logon no Blockchain Platform Manager (a ferramenta de gerenciamento de plano de controle) para criar uma instância.

Depois de criar sua instância, você deverá configurar o encaminhamento de DNS conforme descrito em: Provisionando Pós-requisitos.