Implemente o Oracle Blockchain Platform Enterprise Edition no Oracle Kubernetes Engine
Antes de implantar o Oracle Blockchain Platform Enterprise Edition, você deve ter um cluster do Kubernetes em execução e instalado vários pré-requisitos.
Para obter informações detalhadas sobre o Oracle Kubernetes Engine, consulte Oracle Cloud Infrastructure Container Engine for Kubernetes
Criar um Cluster do Oracle Kubernetes Engine no OCI
Desenvolvimento | Produção com Alta Disponibilidade | |
---|---|---|
Versão Mínima | v1.29.1 | v1.29.1 |
Tipo de nó | Gerenciado | Gerenciado |
Imagem do Nó | Oracle Linux 8 | Oracle Linux 8 |
CPU do Nó | 2 OCPUs ou mais | 4 OCPUs ou mais |
Memória do Nó | 24 GB ou mais | 32 GB ou mais |
Contagem de Nós | 1 ou uma versão mais recente | 3 ou uma versão mais recente |
Tamanho do volume de inicialização | 100 GB ou mais. O volume de inicialização padrão de 50 GB pode não ser suficiente para conter imagens de contêiner do Oracle Blockchain Platform Enterprise Edition e dados temporários para pods de chaincode por causa do armazenamento efêmero limitado. | 100 GB ou mais. O volume de inicialização padrão de 50 GB pode não ser suficiente para conter imagens de contêiner do Oracle Blockchain Platform Enterprise Edition e dados temporários para pods de chaincode por causa do armazenamento efêmero limitado. |
- Recomendamos o uso do
Private workers
para nós de trabalho do Kubernetes para maior segurança - Certifique-se de que os nós de trabalho tenham acesso à internet, o que é necessário para a instalação de chaincodes em suas instâncias do Oracle Blockchain Platform.
Esta seção abordará a criação de um exemplo do Oracle Kubernetes Engine na OCI. Para obter opções e detalhes adicionais, consulte Criando Clusters do Kubernetes Usando Workflows da Console
- Faça log-in na tenancy do OCI, selecionando sua região e compartimento.
- Abra o menu de navegação e clique em Serviços ao Desenvolvedor. Em Contêineres e Artefatos, clique em Clusters do Kubernetes (OKE).
- Na página Lista de Clusters, clique em Criar cluster.
- Na caixa de diálogo Criar cluster, selecione Criação rápida e clique em Submeter.
- Na página Criar cluster, aceite os detalhes de configuração padrão para o novo cluster ou especifique alternativas da seguinte maneira:
- Nome: O nome do novo cluster. Aceite o nome padrão ou digite um nome à sua escolha.
- Compartimento: O compartimento no qual o novo cluster e os recursos de rede associados serão criados.
- Versão do Kubernetes: A versão do Kubernetes a ser executada nos nós de plano de controle e nós de trabalho do cluster. A v1.29.1 foi testada com o Oracle Blockchain Platform Enterprise Edition.
-
Ponto final da API do Kubernetes: O tipo de acesso ao ponto final da API do Kubernetes do cluster. Selecione Público (acessível diretamente da internet). Uma sub-rede regional pública é criada e o ponto final da API do Kubernetes é hospedado nessa sub-rede. O ponto final da API do Kubernetes recebe um endereço IP público, bem como um endereço IP privado.
- Tipo de nó: Especifique o tipo de nós de trabalho no primeiro pool de nós do cluster. Selecione Gerenciado. Você tem a responsabilidade de gerenciar os nós de trabalho no pool de nós. Nós gerenciados são executados em instâncias de computação (bare metal ou máquina virtual) em sua tenancy. Como você é responsável por gerenciar nós gerenciados, você tem a flexibilidade de configurá-los para atender aos seus requisitos específicos. Você é responsável pelo upgrade do Kubernetes em nós gerenciados e pelo gerenciamento da capacidade do cluster.
- Nós de trabalho do Kubernetes: O tipo de acesso aos nós de trabalho do cluster. Selecione Privado (acessível por meio de outras sub-redes da VCN). Uma sub-rede regional privada é criada para hospedar nós de trabalho. Os nós de trabalho recebem um endereço IP privado.
- Forma do nó: A forma a usar para cada nó no pool de nós. A forma determina o número de CPUs e a quantidade de memória alocada para cada nó. A lista mostra somente as formas disponíveis em sua tenancy que são suportadas pelo Container Engine for Kubernetes. O Oracle Blockchain Platform Enterprise Edition foi testado com VM.Standard.E3. Flex e VM.Standard.E4. Formas flexíveis.
- Imagem: A imagem a ser usada nos nós de trabalho do pool de nós gerenciados. Uma imagem é um modelo de disco rígido virtual que determina o sistema operacional e outro software para o pool de nós gerenciados. O Oracle Blockchain Platform Enterprise Edition foi testado com o Oracle Linux 8.
- Contagem de nós: O número de nós de trabalho a serem criados no pool de nós, colocados na sub-rede regional criada para o cluster. Selecione 3 ou mais.
- Volume de inicialização: Configure as opções de tamanho e criptografia para o volume de inicialização do nó de trabalho. O volume de inicialização padrão de 50 GB pode não ser suficiente para conter imagens e dados temporários do Oracle Blockchain Platform Enterprise Edition para pods de chaincode por causa do armazenamento efêmero limitado. Se você estiver planejando implantar vários chaincodes (mais de 5), sugerimos aumentar o volume de inicialização para aproximadamente 100 GB.
- Verifique as opções selecionadas e clique em Criar Cluster.
- Certifique-se de que os nós de trabalho e pools de nós estejam em execução:
- Em Resources, selecione Nodes. Para cada nó de trabalho, certifique-se de que o nó esteja pronto, ativo e corresponda à versão do cluster do Kubernetes.
- Em Recursos, selecione Pools de nós. Para seu pool de nós, certifique-se de que o pool esteja ativo e corresponda à versão do cluster do Kubernetes.
Instalar a Interface de Linha de Comando do OCI
Esta seção fornece um exemplo de passo a passo da instalação da Interface de Linha de Comando do OCI. O Oracle Blockchain Platform Enterprise Edition foi testado com a v3.42.0. Para obter informações adicionais, consulte Interface de Linha de Comando do OCI.
# Install:
sudo dnf -y install oraclelinux-developer-release-el8
sudo dnf -y install python36-oci-cli
# Verify:
$ oci --version
3.42.0
# Install:
brew update && brew install oci-cli
## If this fails with "Error: python@3.12: the bottle needs the Apple Command Line Tools to be installed.", run below command:
xcode-select --install
# Verify:
oci --version
3.43.1
Criar Sistema Iniciador de Instalação
Configurar o acesso local para o cluster
Consulte o seguinte para obter informações adicionais: Configurando o Acesso Local a Clusters.
- Copie sua chave RSA para a máquina Oracle Linux ou macOS na qual você instalou os pré-requisitos. Suas chaves podem ser encontradas na console do OCI:
chmod 400 your_rsa.key
Você pode criar uma nova chave, se necessário. Consulte Como Gerar uma Chave de Assinatura de API
. Proteja a chave: - Na console do OCI, vá para o cluster e abra a página Detalhes do Cluster.
- Selecione Acessar Cluster e, em seguida, Acesso Local.
- Crie um diretório para conter o arquivo kubeconfig:
mkdir -p $HOME/.kube
- Copie o Para acessar o kubeconfig para seu cluster por meio do comando de ponto final público nativo da VCN.
- Execute o comando na sua máquina Linux ou macOS. Como o arquivo de configuração ainda não existe, você será solicitado a informar o seguinte:
- Deseja criar um novo arquivo de configuração? [S/n]: y
- Deseja criar seu arquivo de configuração fazendo login através de um navegador? [S/n]: n
- Insira um local para sua configuração [/home/opc/.oci/config]: selecione um local
- Digite um OCID do usuário: pode ser encontrado na console do OCI
- Digite um OCID da tenancy: pode ser encontrado na console do OCI
- Informe uma região por índice ou nome: Informe o número correspondente à Região da Tenancy, por exemplo, 12
- Deseja gerar um novo par de chaves RSA de Assinatura de API? Se você recusar, você será solicitado a fornecer o caminho para uma chave existente. [S/n]: n
- Informe o local do arquivo de chave privada de Assinatura de API: local do arquivo de chave RSA criado acima
- Quando o arquivo de configuração do OCI for criado, execute novamente o Para acessar o kubeconfig do seu cluster por meio do comando de ponto final público nativo da VCN. Ele usará o arquivo de configuração que você acabou de criar.
- Crie um diretório para conter o arquivo kubeconfig:
- Verifique se você pode acessar o cluster do Oracle Kubernetes Engine:
kubectl get nodes
. Se a configuração estiver correta, o comando produzirá todos os nós de trabalho em seu cluster. - Restringir o acesso ao arquivo de configuração:
chmod 600 $HOME/.kube/config
- Defina sua variável de ambiente KUBECONFIG para o arquivo deste cluster:
export KUBECONFIG=$HOME/.kube/config
Observação:
Se seu arquivo de configuração do OCI tiver vários perfis semelhantes a:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
Você precisará personalizar o arquivo kubeconfig
ou obterá um erro de autorização ao tentar instalar o Oracle Blockchain Platform Enterprise Edition. Na seção de usuários do arquivo kubeconfig
, adicione uma linha para especificar qual usuário usar no seu arquivo de configuração do OCI. Por exemplousers:
- name: user-c3xxxxxq
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
args:
- ce
- cluster
- generate-token
- --cluster-id
- ocid1.cluster.oc1.eu-frankfurt-1.aaaaaaxxxxxxxxxyyyyyy
- --region
- eu-frankfurt-1
- --profile
- <OCI_PROFILE_NAME>
command: oci
env: []
interactiveMode: IfAvailable
provideClusterInfo: false
em que <OCI_PROFILE_NAME>
seria OCI_PROFILE_A
Concluir a Instalação do Istio
O Oracle Blockchain Platform Enterprise Edition suporta a versão 1.20.2 e posterior. Você deve ter concluído as etapas em Instalar Istio antes de concluir o seguinte.
# Install
istioctl install --set profile=default --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
## Enter "y" when prompted for "Proceed? (y/N)"
# Verify:
$ istioctl version
client version: 1.22.1
control plane version: 1.22.1
data plane version: 1.22.1 (1 proxies)
Configurar um Token de Autenticação para seu Usuário
Crie um Token de Autenticação para seu usuário administrativo para que você possa extrair imagens do OCI Registry: Gerando um Token de Autenticação para Ativar o Log-in no Oracle Cloud Infrastructure Registry.
Instalar o Oracle Blockchain Platform Enterprise Edition
- 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. Descompacte o pacote e extraia-o do arquivo baixado.
tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
- Atualize
runme-input.yaml
com os valores necessários. Este é um exemplo derunme-input.yaml
que pode ser usado como referência:
em que:imageRegistryConfiguration: registry: <container_registry_name> imageTagPrefix: <container-image-repository-prefix> username: <container-registry-username> imageReleaseVersion: 24.1.3-20240723083137 # storageClassName should be set to create a dynamic persistent volume. If empty, default storageClass is used. controlPlaneStorage: storageClassName: # Example 500Mi, 5Gi size: 4Gi 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
imageRegistryConfiguration.registry
: Servidor de registro de contêiner a ser usado. Exemplo:iad.ocir.io
imageRegistryConfiguration.imageTagPrefix
: Caminho do repositório base do contêiner com o registro, no qual as imagens devem ser enviadas (extraídas) para (de). Exemplo:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: Nome de usuário de log-in no registro do contêinerimageReleaseVersion
- Versão da versão do Oracle Blockchain Platform Enterprise EditioncontrolPlaneStorage.storageClassName
: Classe de armazenamento do Kubernetes a ser usada para PVC (PersistentVolumeClaim). Se estiver vazio, o padrãostorageClass
será usadocontrolPlaneStorage.size
: Tamanho de PVC para serviços do Blockchain Platform Manager (plano de controle)parentDomainName
: Nome de domínio a ser usado para serviços do Blockchain Platform Manager. Exemplo:example.com
imagePullTimeout
: Timeout de espera de extração de imagem em segundos durante a instalação do Oracle Blockchain Platform Enterprise Edition. O padrão é 1800 segundos.
- Execute
runme_oke.sh [--publish-images]
, seguindo os prompts.Observação:
O comando--publish-images
opcional faz upload dos contêineres para um registro de imagem de contêiner, como o Oracle Cloud Infrastructure Registry, usando os detalhes especificados emrunme-input.yaml
.- Informe a senha do administrador LDAP padrão (a senha não será exibida): ela é usada para definir a senha do usuário administrador para o servidor de autenticação LDAP incorporado.
- Digite a senha padrão do usuário administrador do plano de controle (a senha não será exibida): ela é usada para definir a senha do usuário administrador do Blockchain Platform Manager.
- Se
StorageClass
não tiver sido fornecido emrunme-input.yaml
, o sistema verificará se a classe de armazenamento padrão está definida e perguntará se você deseja usá-la. - Confirme o tipo de serviço do gateway de entrada do Istio: LoadBalancer é padrão, NodePort também é suportado. Observe que o acesso a NodePorts requer que o cluster do Kubernetes seja criado com nós de trabalho públicos. Consulte Instalar Istio.
- Confirme a porta https do serviço de gateway de entrada do Istio: o padrão é 443 para o tipo de serviço LoadBalancer.
- Informe a senha do registro <registry name>: usada para estabelecer conexão com o registro de imagem do contêiner (conforme especificado em
runme-input.yaml
) para fazer download de imagens.
- Como parte da saída do script, ele listará o URL
Istio-ingressgateway
. Registre o endereço IP listado. - O script de instalação continuará a instalar os seguintes serviços no namespace
obp-cp
:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
Acessar o Blockchain Platform Manager
- Execute este comando para obter a lista de nomes de host configurados:
kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
- Com base no tipo de serviço escolhido para
istio-ingressgateway
, esses nomes de host gerados devem ser resolvidos para um endereço IPv4 de acordo com o seguinte:- LoadBalancer: resolve para o endereço IP externo gerado para o serviço
istio-ingressgateway
- NodePort: resolver para os endereços IP dos nós de trabalho
- LoadBalancer: resolve para o endereço IP externo gerado para o serviço