Oracle Blockchain Platform Enterprise Edition auf Oracle Kubernetes Engine bereitstellen
Bevor Sie Oracle Blockchain Platform Enterprise Edition bereitstellen, muss ein Kubernetes-Cluster ausgeführt werden, und Sie müssen mehrere Voraussetzungen installieren.
Ausführliche Informationen zu Oracle Kubernetes Engine finden Sie unter Oracle Cloud Infrastructure Container Engine for Kubernetes
Oracle Kubernetes Engine-Cluster auf OCI erstellen
| Entwicklung | Produktion mit hoher Verfügbarkeit | |
|---|---|---|
| Minimale Version | v1.29.1 | v1.29.1 |
| Knotentyp | Verwaltet | Verwaltet |
| Knotenabbild | Oracle Linux 8 | Oracle Linux 8 |
| Knoten-CPU | 2 OCPUs oder höher | 4 OCPUs oder höher |
| Knotenarbeitsspeicher | 24 GB oder höher | 32 GB oder höher |
| Knotenanzahl | 1 oder höher | 3 oder höher |
| Boot-Volume-Größe | 100 GB oder höher. Das Standard-Boot-Volume von 50 GB reicht möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Containerimages und temporäre Daten für Chaincode-Pods zu speichern, da der flüchtige Speicher begrenzt ist. | 100 GB oder höher. Das Standard-Boot-Volume von 50 GB reicht möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Containerimages und temporäre Daten für Chaincode-Pods zu speichern, da der flüchtige Speicher begrenzt ist. |
- Wählen Sie für zusätzliche Sicherheit
Private workersfür die Kubernetes-Worker-Knoten aus. - Stellen Sie sicher, dass die Worker-Knoten Zugriff auf das Internet haben, das für die Installation von Chaincodes auf Ihren Oracle Blockchain Platform-Instanzen erforderlich ist.
In diesem Abschnitt wird beschrieben, wie Sie ein Beispiel für die Oracle Kubernetes Engine auf OCI erstellen. Weitere Optionen und Details finden Sie unter Kubernetes-Cluster mit Konsolenworkflows erstellen
- Melden Sie sich bei Ihrem OCI-Mandanten an, und wählen Sie Ihre Region und Ihr Compartment aus.
- öffnen Sie das Navigationsmenü, und klicken Sie auf Entwicklerservices. Klicken Sie unter Container und Artefakte auf Kubernetes-Cluster (OKE).
- Klicken Sie auf der Seite Clusterliste auf Cluster erstellen.
- Wählen Sie im Dialogfeld Cluster erstellen die Option Schnellerstellung aus, und klicken Sie auf Weiterleiten.
- Übernehmen Sie auf der Seite "Cluster erstellen" entweder die Standardkonfigurationsdetails für das neue Cluster, oder geben Sie Alternativen wie folgt An:
- Name: Der Name des neuen Clusters. Sie können entweder den Standardnamen übernehmen oder einen Namen Ihrer Wahl eingeben.
- Compartment: Das Compartment, in dem das neue Cluster und die zugehörigen Netzwerkressourcen erstellt wird.
- Kubernetes-Version: Die Version von Kubernetes, die auf den Control-Plane-Knoten und Worker-Knoten des Clusters ausgeführt werden soll. v1.29.1 wurde mit Oracle Blockchain Platform Enterprise Edition getestet.
-
Kubernetes-API-Endpunkt: Der Zugriffstyp auf den Kubernetes-API-Endpunkt des Clusters Wählen Sie Öffentlich (direkt über das Internet zugänglich). Ein öffentliches regionales Subnetz wird erstellt, und der Kubernetes-API-Endpunkt wird in diesem Subnetz gehostet. Dem Kubernetes-API-Endpunkt wird eine öffentliche IP-Adresse und eine private IP-Adresse zugewiesen.
- Knotentyp: Geben Sie den Typ der Worker-Knoten im ersten Knotenpool im Cluster an. Wählen Sie Verwaltet aus. Sie sind für die Verwaltung der Worker-Knoten im Knotenpool verantwortlich. Verwaltete Knoten werden auf Compute-Instanzen (Bare Metal oder virtuelle Maschine) in Ihrem Mandanten ausgeführt. Da Sie für die Verwaltung verwalteter Knoten verantwortlich sind, können Sie diese flexibel konfigurieren, um Ihre spezifischen Anforderungen zu erfüllen. Sie sind für das Upgrade von Kubernetes auf verwalteten Knoten und für die Verwaltung der Clusterkapazität verantwortlich.
- Kubernetes-Worker-Knoten: Der Zugriffstyp auf die Worker-Knoten des Clusters Wählen Sie Privat aus (Zugriff über andere VCN-Subnetze möglich). Ein privates regionales Subnetz wird erstellt, um Worker-Knotenzu hosten. Den Worker-Knoten wird eine private IP-Adresse zugewiesen.
- Knotenausprägung: Die Ausprägung, die für jeden Knoten im Knotenpool verwendet werden muss. Die Ausprägung bestimmt die Anzahl von CPUs und den Speicherplatz, der jedem Knoten zugewiesen wird. Die Liste zeigt nur die verfügbaren Ausprägungen in Ihrem Mandanten, die von Container Engine for Kubernetes unterstützt werden. Oracle Blockchain Platform Enterprise Edition wurde mit VM.Standard.E3 getestet. Flex und VM.Standard.E4. Flex-Formen.
- Image: Das Image, das auf Worker-Knoten im verwalteten Knotenpool verwendet werden soll. Ein Image ist eine Vorlage einer virtuellen Festplatte, die das Betriebssystem und andere Software für den verwalteten Knotenpool bestimmt. Oracle Blockchain Platform Enterprise Edition wurde mit Oracle Linux 8 getestet.
- Knotenanzahl: Die Anzahl der in Knotenpool zu erstellenden Worker-Knoten, die im regionalen Subnetz abgelegt werden, das für das Cluster erstellt wurde. Wählen Sie drei oder mehr.
- Boot-Volume: Konfigurieren Sie die Größe und die Verschlüsselungsoptionen für das Boot-Volume des Worker-Knotens. Das Standard-Boot-Volume von 50 GB reicht möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Images und temporäre Daten für Chaincode-Pods zu speichern, da der flüchtige Speicher begrenzt ist. Wenn Sie mehrere Chaincodes (mehr als fünf) bereitstellen möchten, erhöhen Sie das Boot-Volume auf etwa 100 GB.
- Prüfen Sie die ausgewählten Optionen, und klicken Sie auf Cluster erstellen.
- Stellen Sie sicher, dass die Worker-Knoten und Knotenpools ausgeführt werden:
- Wählen Sie unter Ressourcen die Option Knoten aus. Stellen Sie für jeden Worker-Knoten sicher, dass der Knoten bereit, aktiv und mit der Kubernetes-Clusterversion übereinstimmt.
- Wählen Sie unter Ressourcen die Option Knotenpools aus. Stellen Sie für Ihren Knotenpool sicher, dass der Pool aktiv ist und mit der Kubernetes-Clusterversion übereinstimmt.
OCI-Befehlszeilenschnittstelle installieren
Dieser Abschnitt enthält ein Beispiel für die Installation der OCI-Befehlszeilenschnittstelle. Oracle Blockchain Platform Enterprise Edition wurde mit v3.42.0 getestet. Weitere Informationen finden Sie unter OCI-Befehlszeilenschnittstelle.
# 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.1Installationsinitiatorsystem erstellen
Lokalen Zugriff für das Cluster einrichten
Weitere Informationen finden Sie unter Lokalen Zugriff auf Cluster einrichten.
- Kopieren Sie den RSA-Schlüssel in das Oracle Linux- oder macOS-System, auf dem Sie die Voraussetzungen installiert haben. Ihre Schlüssel finden Sie in der OCI-Konsole: . Sichern Sie den Schlüssel:
chmod 400 your_rsa.keySie können bei Bedarf einen Schlüssel erstellen. Siehe So generieren Sie einen API-Signaturschlüssel
- Gehen Sie in der OCI-Konsole zu Ihrem Cluster, und öffnen Sie die Seite Clusterdetails.
- Wählen Sie Auf Cluster zugreifen, Lokaler Zugriff aus.
- Erstellen Sie ein Verzeichnis, das die Datei
kubeconfigenthält:mkdir -p $HOME/.kube - Kopieren Sie den Befehl So greifen Sie über den VCN-nativen öffentlichen Endpunkt auf kubeconfig für das Cluster zu.
- Führen Sie den Befehl auf Ihrem Linux- oder macOS-System aus. Da die Konfigurationsdatei noch nicht vorhanden ist, werden Sie aufgefordert, Folgendes einzugeben:
- Möchten Sie eine neue Konfigurationsdatei erstellen? [Y/n]: y
- Möchten Sie die Konfigurationsdatei erstellen, indem Sie sich über einen Browser anmelden? [Y/n]: n
- Geben Sie einen Speicherort für die Konfiguration ein [/home/opc/.oci/config]: wählen Sie einen Speicherort
- Geben Sie eine Benutzer-OCID ein: Sie finden sie in der OCI-Konsole
- Geben Sie eine Mandanten-OCID ein: Sie finden sie in der OCI-Konsole
- Region nach Index oder Name eingeben: Geben Sie die Zahl ein, die der Region Ihres Mandanten entspricht, z.B. 12
- Möchten Sie ein neues API Signing RSA-Schlüsselpaar generieren? Wenn Sie ablehnen, werden Sie aufgefordert, den Pfad für einen vorhandenen Schlüssel anzugeben. [Y/n]: n
- Geben Sie den Speicherort Ihrer API Signing Private Key-Datei ein: Speicherort der oben erstellten RSA-Schlüsseldatei
- Wenn die OCI-Konfigurationsdatei erstellt wird, müssen Sie die kopierte Datei So greifen Sie über den Befehl "VCN-nativer öffentlicher Endpunkt" auf die kubeconfig für Ihr Cluster zu. Es wird die soeben erstellte Konfigurationsdatei verwendet.
- Erstellen Sie ein Verzeichnis, das die Datei
- Stellen Sie sicher, dass Sie das Oracle Kubernetes Engine-Cluster erreichen können:
kubectl get nodes. Wenn das Setup korrekt ist, zeigt der Befehl alle Worker-Knoten in Ihrem Cluster an. - Zugriff auf die Konfigurationsdatei einschränken:
chmod 600 $HOME/.kube/config - Setzen Sie die Umgebungsvariable
KUBECONFIGauf die Datei für dieses Cluster:export KUBECONFIG=$HOME/.kube/config
Hinweis:
Prüfen Sie, ob die OCI-Konfigurationsdatei mehrere Profile enthält, die dem folgenden Text ähneln:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = ............. In diesem Fall müssen Sie die Datei kubeconfig anpassen, oder Sie erhalten einen Autorisierungsfehler, wenn Sie versuchen, Oracle Blockchain Platform Enterprise Edition zu installieren. Fügen Sie im Abschnitt "Benutzer" der Datei kubeconfig eine Zeile hinzu, um anzugeben, welcher Benutzer in der OCI-Konfigurationsdatei verwendet werden soll. Beispiel:users:
- 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: falsewobei <OCI_PROFILE_NAME> OCI_PROFILE_A wäreIstio-Installation abschließen
Oracle Blockchain Platform Enterprise Edition unterstützt Version 1.20.2 und höher. Sie müssen die Schritte unter Istio installieren ausgeführt haben, bevor Sie die folgenden Befehle ausführen.
# 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)Authentifizierungstoken für Ihren Benutzer einrichten
Erstellen Sie ein Authentifizierungstoken für Ihren administrativen Benutzer, damit Sie Images aus der OCI Registry abrufen können: Authentifizierungstoken generieren, um die Anmeldung bei Oracle Cloud Infrastructure Registry zu aktivieren.
Oracle Blockchain Platform Enterprise Edition installieren
- Klicken Sie auf der Seite Oracle Blockchain Platform Enterprise Edition auf Herunterladen, und befolgen Sie die Schritte zum Herunterladen des Oracle Blockchain Platform Enterprise Edition-Packages. Extrahieren Sie das Package aus der Datei
.zip, und extrahieren Sie es dann aus der heruntergeladenen Archivdatei.tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz - Aktualisieren Sie die Datei
runme-input.yamlmit den erforderlichen Werten. Die folgende Beispieldateirunme-input.yamlkann als Referenz verwendet werden:
Im vorherigen Beispiel werden die Variablen wie in der folgenden Liste dargestellt definiert: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: 1800imageRegistryConfiguration.registry: Zu verwendender Container-Registry-Server. Beispiel:iad.ocir.ioimageRegistryConfiguration.imageTagPrefix: Container-Basis-Repository-Pfad mit der Registry, in die Images übertragen und daraus abgerufen werden. Beispiel:iad.ocir.io/obpee/bcsimageRegistryConfiguration.username: Benutzername der Container-Registry-AnmeldungimageReleaseVersion- Oracle Blockchain Platform Enterprise Edition-ReleaseversioncontrolPlaneStorage.storageClassName: Kubernetes-Speicherklasse für PVC (PersistentVolumeClaim). Wenn leer, wird der StandardwertstorageClassverwendetcontrolPlaneStorage.size: PVC-Größe für Blockchain Platform Manager-(Control-Plane-)ServicesparentDomainName: Domainname für Blockchain Platform Manager-Services. Beispiel:example.comimagePullTimeout: Wartezeitüberschreitung beim Image-Pull in Sekunden während der Installation von Oracle Blockchain Platform Enterprise Edition. Der Standardwert ist "1800 Sekunden".
- Führen Sie das Skript
runme_oke.sh [--publish-images]nach den Prompts aus.Hinweis:
Der optionale Befehl--publish-imageslädt die Container mit den in der Dateirunme-input.yamlangegebenen Details in eine Containerimage-Registry wie Oracle Cloud Infrastructure Registry hoch.- Geben Sie das Standard-LDAP-Admin-Kennwort ein (das Kennwort wird nicht angezeigt): Legt das Administratorkennwort für den integrierten LDAP-Authentifizierungsserver fest.
- Geben Sie das Standardkennwort für den Control-Plane-Admin-Benutzer ein (das Kennwort wird nicht angezeigt): Legt das Kennwort des Blockchain Platform Manager-Administrators fest.
- Wenn
StorageClassnicht in der Dateirunme-input.yamlangegeben wurde, prüft das System, ob die Standardspeicherklasse festgelegt ist, und fragt, ob Sie sie verwenden möchten. - Bestätigen Sie, dass der Servicetyp des Istio-Ingress-Gateways:
LoadBalancerder Standard ist.NodePortwird ebenfalls unterstützt. Beachten Sie, dass beim Zugriff aufNodePortsdas Kubernetes-Cluster mit öffentlichen Worker-Knoten erstellt wurde. Siehe Istio installieren. - Bestätigen Sie den HTTPS-Port des Istio-Ingress-Gatewayservice: Der Standardwert für den Servicetyp
LoadBalancerist 443. - Geben Sie das Registrierungskennwort <Registry-Name> ein: Dieses Kennwort wird verwendet, um eine Verbindung zu Ihrer Containerimage-Registry (wie in der Datei
runme-input.yamlangegeben) zum Herunterladen von Images herzustellen.
- Das Skript listet die URL
Istio-ingressgatewayals Teil der Ausgabe auf. Notieren Sie sich die angegebene IP-Adresse. - Das Skript installiert die folgenden Services unter dem Namespace
obp-cp:control-planeopenldapobp-auth-serverobp-operatorhlf-operator
Auf Blockchain Platform Manager zugreifen
- Führen Sie den folgenden Befehl aus, um die Liste der konfigurierten Hostnamen abzurufen:
kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]' - Basierend auf dem ausgewählten Servicetyp für
istio-ingressgatewaymüssen diese generierten Hostnamen gemäß den folgenden Anforderungen in eine IPv4-Adresse aufgelöst werden:LoadBalancer: Lösen Sie das Problem mit der externen IP-Adresse, die für denistio-ingressgateway-Service generiert wurde. Führen Sie den folgenden Befehl aus, um die IP-Adresse abzurufen.
Fügen Sie die folgende Zeile zur Dateikubectl get svc/istio-ingressgateway -n istio-system/etc/hosts(Linux, macOS) oderC:\Windows\system32\drivers\etc\hosts(Microsoft Windows) auf dem Host hinzu, der für die Verbindung zur Blockchain Platform Manager-Konsole verwendet wird.<public_svc_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>NodePort: Lösen Sie die IP-Adressen der Worker-Knoten auf.