Oracle Blockchain Platform Enterprise Edition auf der Oracle Kubernetes Engine bereitstellen
Vor dem Deployment von Oracle Blockchain Platform Enterprise Edition müssen Sie ein Kubernetes-Cluster ausführen und 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 aufgrund des begrenzten flüchtigen Speichers möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Containerimages und temporäre Daten für Chaincode-Pods aufzunehmen. | 100 GB oder höher. Das Standard-Boot-Volume von 50 GB reicht aufgrund des begrenzten flüchtigen Speichers möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Containerimages und temporäre Daten für Chaincode-Pods aufzunehmen. |
- Wir empfehlen die Verwendung von
Private workers
für Kubernetes-Worker-Knoten für zusätzliche Sicherheit - 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 die Erstellung einer Oracle Kubernetes-Beispiel-Engine auf OCI erläutert. 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.
- Klicken Sie im Dialogfeld Cluster erstellen auf Schneller erstellen und dann auf Weiterleiten.
- Akzeptieren Sie auf der Seite Cluster erstellen die Standardkonfigurationsdetails für das neue Cluster, oder geben Sie Alternativen wie folgt an:
- Name: Der Name des neuen Clusters. Akzeptieren Sie den Standardnamen, oder geben Sie einen Namen Ihrer Wahl ein.
- Compartment: Das Compartment, in dem das neue Cluster und die zugehörigen Netzwerkressourcen erstellt werden sollen.
- Kubernetes-Version: Die Version von Kubernetes, die auf den Steuerebenenknoten 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 für 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 Managed. Sie sind für die Verwaltung der Worker-Knoten im Knotenpool verantwortlich. Verwaltete Knoten werden auf Compute-Instanzen (Bare Metal oder Virtual Machine) in Ihrem Mandanten ausgeführt. Da Sie für die Verwaltung verwalteter Knoten verantwortlich sind, haben Sie die Flexibilität, sie entsprechend Ihren spezifischen Anforderungen zu konfigurieren. Sie sind für das Upgrade von Kubernetes auf verwalteten Knoten und die Verwaltung der Clusterkapazität verantwortlich.
- Kubernetes-Worker-Knoten: Der Zugriffstyp für den Cluster-Worker-Knoten. Wählen Sie Privat aus (auf die über andere VCN-Subnetze zugegriffen werden kann). Ein privates regionales Subnetz wird erstellt, um Worker-Knoten zu hosten. Den Worker-Knoten wird eine private IP-Adresse zugewiesen.
- Knotenausprägung: Die Ausprägung, die für jeden Knoten im Knotenpool verwendet werden soll. 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-Ausprägungen.
- 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 im Knotenpool zu erstellenden Worker-Knoten, die im regionalen Subnetz abgelegt werden, das für das Cluster erstellt wurde. Wählen Sie mindestens 3 aus.
- 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 aufgrund des begrenzten flüchtigen Speichers möglicherweise nicht aus, um Oracle Blockchain Platform Enterprise Edition-Images und temporäre Daten für Chaincode-Pods aufzunehmen. Wenn Sie mehrere Chaincodes (mehr als 5) bereitstellen möchten, empfehlen wir, das Boot-Volume auf etwa 100 GB zu erhöhen.
- 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 und aktiv ist und mit der Kubernetes-Clusterversion übereinstimmt.
- Wählen Sie unter Ressourcen die Option Knotenpools. Stellen Sie für den Knotenpool sicher, dass der Pool aktiv ist und mit der Kubernetes-Clusterversion übereinstimmt.
OCI-Befehlszeilenoberfläche 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.1
Installationsinitiatorsystem erstellen
Lokalen Zugriff für das Cluster einrichten
Weitere Informationen finden Sie unter Lokalen Zugriff auf Cluster einrichten.
- Kopieren Sie den RSA-Schlüssel auf den Oracle Linux- oder macOS-Rechner, auf dem Sie die Voraussetzungen installiert haben. Ihre Schlüssel finden Sie in der OCI-Konsole:
chmod 400 your_rsa.key
Bei Bedarf können Sie einen neuen Schlüssel erstellen. Siehe So generieren Sie einen API-Signaturschlüssel
. Sichern Sie den Schlüssel: - Gehen Sie in der OCI-Konsole zu Ihrem Cluster, und öffnen Sie die Seite Clusterdetails.
- Wählen Sie Auf Cluster zugreifen, Lokalen Zugriff aus.
- Erstellen Sie ein Verzeichnis für die kubeconfig-Datei:
mkdir -p $HOME/.kube
- Kopieren Sie den Befehl So greifen Sie auf kubeconfig für das Cluster über den VCN-nativen öffentlichen Endpunkt zu.
- Führen Sie den Befehl auf dem Linux- oder macOS-Rechner aus. Da die Konfigurationsdatei noch nicht vorhanden ist, werden Sie zur Eingabe folgender Informationen aufgefordert:
- Möchten Sie eine neue Konfigurationsdatei erstellen? [J/n]: y
- Möchten Sie Ihre Konfigurationsdatei erstellen, indem Sie sich über einen Browser anmelden? [J/n]: n
- Geben Sie einen Speicherort für die Konfiguration ein [/home/opc/.oci/config]: Wählen Sie einen Speicherort aus.
- Geben Sie eine Benutzer-OCID ein: finden Sie in der OCI-Konsole
- Geben Sie eine Mandanten-OCID ein: Sie finden sie in der OCI-Konsole
- Geben Sie eine Region nach Index oder Name ein: Geben Sie die Nummer ein, die der Region Ihres Mandanten entspricht. Beispiel: 12
- Möchten Sie ein neues RSA-Schlüsselpaar für die API-Signatur generieren? Wenn Sie ablehnen, werden Sie aufgefordert, den Pfad zu einem vorhandenen Schlüssel anzugeben. [J/n]: n
- Geben Sie den Speicherort der Private-Key-Datei für die API-Signatur ein: Speicherort der oben erstellten RSA-Schlüsseldatei
- Wenn die OCI-Konfigurationsdatei erstellt wird, müssen Sie den kopierten Befehl Um über den VCN-nativen öffentlichen Endpunkt auf das kubeconfig für das Cluster zuzugreifen, erneut ausführen. Es wird die soeben erstellte Konfigurationsdatei verwendet.
- Erstellen Sie ein Verzeichnis für die kubeconfig-Datei:
- Stellen Sie sicher, dass Sie das Oracle Kubernetes Engine-Cluster erreichen können:
kubectl get nodes
. Wenn das Setup korrekt ist, gibt der Befehl alle Worker-Knoten in Ihrem Cluster aus. - Schränken Sie den Zugriff auf die Konfigurationsdatei ein:
chmod 600 $HOME/.kube/config
- Stellen Sie die Umgebungsvariable KUBECONFIG auf die Datei für dieses Cluster ein:
export KUBECONFIG=$HOME/.kube/config
Hinweis:
Wenn die OCI-Konfigurationsdatei mehrere Profile wie folgt enthält:[OCI_PROFILE_A]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
[OCI_PROFILE_B]
fingerprint = .............
key_file = .............
tenancy = .............
region = .............
user = .............
Sie müssen 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: false
wobei <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. Bevor Sie die folgenden Schritte ausführen können, müssen Sie die Schritte unter Istio installieren ausgeführt haben.
# 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 Benutzer einrichten
Erstellen Sie ein Authentifizierungstoken für den administrativen Benutzer, damit Sie Images aus der OCI-Registry abrufen können: Authentifizierungstoken zum Aktivieren der Anmeldung bei Oracle Cloud Infrastructure Registry generieren.
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. Entpacken Sie das Paket, und extrahieren Sie es aus der heruntergeladenen Archivdatei.
tar -xzf <distribution-package-file> # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
- Aktualisieren Sie
runme-input.yaml
mit den erforderlichen Werten. Dies ist ein Beispiel fürrunme-input.yaml
, das als Referenz verwendet werden kann:
Hierbei gilt: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
: Zu verwendender Container-Registry-Server. Beispiel:iad.ocir.io
imageRegistryConfiguration.imageTagPrefix
: Containerbasis-Repository-Pfad mit der Registry, in den die Images übertragen (abgezogen) werden sollen (von). Beispiel:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: Anmeldename für Container RegistryimageReleaseVersion
- Oracle Blockchain Platform Enterprise Edition-ReleaseversioncontrolPlaneStorage.storageClassName
: Kubernetes-Speicherklasse für PVC (PersistentVolumeClaim). Wenn leer, wird der StandardwertstorageClass
verwendetcontrolPlaneStorage.size
: PVC-Größe für Blockchain Platform Manager-(Control Plane-)ServicesparentDomainName
: Domainname für Blockchain Platform Manager-Services. Beispiel:example.com
imagePullTimeout
: Timeout für Image-Pull-Wartezeit in Sekunden während der Installation von Oracle Blockchain Platform Enterprise Edition. Der Standardwert ist "1800 Sekunden".
- Führen Sie
runme_oke.sh [--publish-images]
unter Befolgung der Prompts aus.Hinweis:
Der optionale Befehl--publish-images
lädt die Container mit den inrunme-input.yaml
angegebenen Details in eine Containerimage-Registry wie Oracle Cloud Infrastructure Registry hoch.- Geben Sie das Standard-LDAP-Admin-Kennwort ein (das Kennwort wird nicht angezeigt): Damit wird das Kennwort des Admin-Benutzers für den integrierten LDAP-Authentifizierungsserver festgelegt.
- Geben Sie das Standard-Admin-Benutzerkennwort für Control Plane ein (das Kennwort wird nicht angezeigt): Damit wird das Kennwort des Admin-Benutzers für den Blockchain Platform Manager festgelegt.
- Wenn
StorageClass
nicht inrunme-input.yaml
angegeben wurde, prüft das System, ob die Standardspeicherklasse festgelegt ist, und fragt, ob Sie sie verwenden möchten. - Bestätigen Sie den Servicetyp des Istio-Ingress-Gateways: LoadBalancer ist der Standardwert. NodePort wird ebenfalls unterstützt. Beachten Sie, dass für den Zugriff auf NodePorts das Kubernetes-Cluster mit öffentlichen Worker-Knoten erstellt werden muss. Siehe Istio installieren.
- Bestätigen Sie den HTTPS-Port des Istio-Ingress-Gatewayservice: Der Standardwert ist 443 für den Servicetyp LoadBalancer.
- Geben Sie das Registrierungskennwort <registry name> ein: Damit wird eine Verbindung zur Containerimage-Registry (wie in
runme-input.yaml
angegeben) zum Herunterladen von Images hergestellt.
- Als Teil der Ausgabe des Skripts wird die URL
Istio-ingressgateway
aufgelistet. Notieren Sie sich die aufgeführte IP-Adresse. - Das Installationsskript installiert weiterhin die folgenden Services unter dem Namespace
obp-cp
:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
Zugriff auf Blockchain Platform Manager
- Führen Sie diesen 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-ingressgateway
müssen diese generierten Hostnamen gemäß den folgenden Angaben in eine IPv4-Adresse aufgelöst werden:- LoadBalancer: In die externe IP-Adresse auflösen, die für den
istio-ingressgateway
-Service generiert wurde - NodePort: Auflösen in die IP-Adressen der Worker-Knoten
- LoadBalancer: In die externe IP-Adresse auflösen, die für den