5 Instanz bereitstellen

In diesem Abschnitt wird beschrieben, wie Sie Ihre Oracle Blockchain Platform-Instanz mit Blockchain Platform Manager bereitstellen.

Vor dem Erstellen einer Oracle Blockchain Platform-Instanz

Bevor Sie Oracle Blockchain Platform bereitstellen, entscheiden Sie, ob eine Entwickler- oder Unternehmensinstanz Ihren Anforderungen entspricht.

Zu verwendende Provisioning-Ausprägung bestimmen

Beim Provisioning einer Instanz können Sie zwischen zwei Konfigurationen wählen. Die Migration zwischen diesen Optionen wird derzeit nicht unterstützt.

Konfiguration Features
Entwickler

Empfohlene Verwendung für diese Startausprägungen ist Entwicklung und Bewertung.

  • 1 Fabric-CA-Knoten
  • Fabric Ordering Service-Netzwerk mit 3 Knoten
  • Repository mit 1 Knoten für Instanzmetadaten
  • Dynamisch verwaltete Chaincode-Ausführungscontainer
  • Konsolenservice für Webbenutzeroberfläche für Vorgänge
  • REST-Proxyservice für die RESTful-API
  • LDAP-Serverintegration für Authentifizierung und Rollenverwaltung
Enterprise

Hochverfügbare Instanzkonfiguration mit höherer Replikatanzahl für jeden Service.

  • 3 Fabric-CA-Knoten
  • Fabric Ordering Service-Netzwerk mit 3 Knoten
  • Cluster Repository mit 3 Knoten für High Availability von Instanzmetadaten
  • Dynamisch verwaltete Chaincode-Ausführungscontainer
  • Konsolenservice für Operations-Webbenutzeroberfläche
  • Mehrere Replikate für den REST-Proxyservice für die RESTful-API
  • LDAP-Serverintegration für Authentifizierung und Rollenverwaltung

Instanz mit Blockchain Platform Manager bereitstellen

Um eine Blockchain-Gründer- oder Teilnehmerinstanz in Blockchain Platform Manager zu erstellen, verwenden Sie den Assistenten "Neue Instanz erstellen".

Sie können zwei Arten von Oracle Blockchain Platform-Instanzen bereitstellen:
  • Gründerorganisation: eine vollständige Blockchain-Umgebung, einschließlich eines neuen Netzwerks, dem Teilnehmer später beitreten können.

  • Teilnehmerinstanz: Wenn bereits eine Gründerorganisation vorhanden ist, der Sie beitreten möchten, können Sie eine Teilnehmerinstanz erstellen, sofern Sie mit Ihren Zugangsdaten Zugriff auf das Netzwerk haben. Beachten Sie, dass ein Teilnehmer nicht alleine arbeiten kann.

  1. Öffnen Sie in Blockchain Platform Manager die Seite Instanzen.
  2. Wählen Sie Instanz erstellen aus.
  3. Füllen Sie die folgenden Felder aus:
    Feld Beschreibung
    Instanzname

    Geben Sie einen Namen für Ihre Oracle Blockchain Platform-Instanz ein.

    Der Serviceinstanzname:

    • Muss mindestens ein Zeichen enthalten.
    • Darf 15 Zeichen nicht überschreiten.
    • Muss mit einem ASCII-Buchstaben beginnen: a bis z.
    • Darf nur ASCII-Zeichen oder Zahlen enthalten.
    • Darf keinen Bindestrich enthalten.
    • Darf keine weiteren Sonderzeichen enthalten.
    • Muss innerhalb der Identitätsdomain eindeutig sein.
    Beschreibung

    Optional.

    Geben Sie eine kurze Beschreibung der Oracle Blockchain Platform-Instanz ein.

    Domainname

    Geben Sie den Domainnamen für das Cluster ein.

    Die für die Blockchain-Instanzservices generierten Hostnamen verwenden den Domainnamen und den Instanznamen jeweils als übergeordnete Domain und Unterdomain.

    Rolle

    Wählen Sie Gründer aus, um eine vollständige Blockchain-Umgebung zu erstellen. Diese Instanz wird zur Gründerorganisation und Sie können später neue Teilnehmer im Netzwerk einbinden.

    Wählen Sie Teilnehmer aus, um eine Instanz zu erstellen, die einem vorhandenen Blockchain-Netzwerk beitritt, das an anderer Stelle erstellt wurde, bevor diese Instanz verwendet werden kann.

    Konfiguration
    Wählen Sie eine Provisioning-Ausprägung aus, die den Anforderungen Ihres Deployments entspricht:
    • Entwickler
    • Enterprise
    Gleichgestellte

    Geben Sie die Anzahl der Peerknoten an, die zunächst in dieser Serviceinstanz erstellt werden sollen. Sie können zu einem späteren Zeitpunkt weitere Peerknoten in der Oracle Blockchain Platform-Konsole erstellen.

  4. Klicken Sie auf Instanz erstellen.

Nachträgliche Provisioning-Voraussetzungen

Bevor Sie auf die Oracle Blockchain Platform-Servicekonsole zugreifen, konfigurieren Sie die Hostnamenauflösung für die Blockchain-Instanzservices ähnlich wie zuvor für die Blockchain Platform Manager-Hostnamen. Verwenden Sie den folgenden Befehl, um die Liste der Hostnamen für die erstellte Blockchain-Instanz abzurufen:
kubectl get virtualservice -n <instance-namespace> -o json | jq -r
      .items[].spec.hosts[0]
Konfigurieren Sie vor dem Zugriff auf die Oracle Blockchain Platform-Servicekonsole die Hostnamenauflösung für die Blockchain-Instanzservices, ähnlich wie zuvor für die Blockchain Platform Manager-Hostnamen. Verwenden Sie den folgenden Befehl, um die Liste der Hostnamen für die erstellte Blockchain-Instanz abzurufen:
kubectl get virtualservice -n <instance-namespace> -o json | jq -r
      .items[].spec.hosts[0]

Nachdem Sie eine Oracle Blockchain Platform Enterprise Edition-Instanz erstellt haben, müssen Sie DNS so konfigurieren, dass öffentliche Hostnamen der Komponenten aus dem lokalen Netzwerk OpenShift aufgelöst werden können.

Nachdem Sie eine Instanz erstellt haben, werden der Instanzname und die übergeordnete Domain als Subdomain für die Oracle Blockchain Platform Enterprise Edition-Komponenten verwendet. Sie müssen die DNS-Weiterleitung in der DNS-Standardkonfiguration für OpenShift einrichten, damit DNS-Anforderungen an den benutzerdefinierten DNS-Pod weitergeleitet werden, in dem die angegebenen Services aufgelöst werden. Gehen Sie folgendermaßen vor, um die DNS-Weiterleitung zu konfigurieren.
  1. Führen Sie den folgenden Befehl aus.
    oc new-project obp-coredns
  2. Stellen Sie einen benutzerdefinierten coredns-Server im Namespace obp-coredns bereit, indem Sie den folgenden Befehl ausführen.
    kubectl apply -f <coredns-deployment-yaml-file>
    Verwenden Sie die folgende Manifestdatei mit dem Befehl.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns
      namespace: obp-coredns
    data:
      Corefile: |-
        .:1053 {
          errors
          health {
            lameduck 5s
          }
          ready
          kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
          }
          prometheus :9153
          forward . /etc/resolv.conf
          cache 30
          loop
          reload
          loadbalance
        }
        import custom/*.server
     
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: obp-coredns
      name: obp-coredns
      namespace: obp-coredns
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: obp-coredns
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: obp-coredns
        spec:
          containers:
          - args:
            - -conf
            - /etc/coredns/Corefile
            image: docker.io/coredns/coredns:latest
            imagePullPolicy: IfNotPresent
            livenessProbe:
              failureThreshold: 5
              httpGet:
                path: /health
                port: 8080
                scheme: HTTP
              initialDelaySeconds: 60
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 5
            name: coredns
            ports:
            - containerPort: 1053
              name: dns
              protocol: UDP
            - containerPort: 1053
              name: dns-tcp
              protocol: TCP
            - containerPort: 9153
              name: metrics
              protocol: TCP
            readinessProbe:
              failureThreshold: 3
              httpGet:
                path: /ready
                port: 8181
                scheme: HTTP
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 1
            resources:
              limits:
                memory: 170Mi
              requests:
                cpu: 100m
                memory: 70Mi
            securityContext:
              allowPrivilegeEscalation: false
              capabilities:
                add:
                - NET_BIND_SERVICE
                drop:
                - all
              readOnlyRootFilesystem: true
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/coredns
              name: config-volume
              readOnly: true
            - mountPath: /etc/coredns/custom
              name: custom-config-volume
              readOnly: true
          dnsPolicy: Default
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          serviceAccount: obp-coredns
          serviceAccountName: obp-coredns
          terminationGracePeriodSeconds: 30
          volumes:
          - configMap:
              defaultMode: 420
              items:
              - key: Corefile
                path: Corefile
              name: coredns
            name: config-volume
          - configMap:
              defaultMode: 420
              name: coredns-custom
              optional: true
            name: custom-config-volume
     
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: obp-coredns
      name: obp-coredns
      namespace: obp-coredns
    spec:
      ports:
      - name: dns
        port: 53
        protocol: UDP
        targetPort: 1053
      - name: dns-tcp
        port: 53
        protocol: TCP
        targetPort: 1053
      - name: metrics
        port: 9153
        protocol: TCP
        targetPort: 9153
      selector:
        app: obp-coredns
      sessionAffinity: None
      type: ClusterIP
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: obp-coredns
      namespace: obp-coredns
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: obp-coredns
    rules:
    - apiGroups:
      - ""
      resources:
      - endpoints
      - services
      - pods
      - namespaces
      verbs:
      - list
      - watch
    - apiGroups:
      - ""
      resources:
      - nodes
      verbs:
      - get
    - apiGroups:
      - discovery.k8s.io
      resources:
      - endpointslices
      verbs:
      - list
      - watch
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: obp-coredns
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: obp-coredns
    subjects:
    - kind: ServiceAccount
      name: obp-coredns
      namespace: obp-coredns
    
  3. Erstellen Sie eine coredns-custom-configmap-Datei im YAML-Format für Ihre Blockchain-Instanz.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom
      namespace: obp-coredns
    data:
      obp.server: |2
     
        <instanceName>.<domain>:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.<instanceName>\.<domain>\.com istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
    
    Im vorherigen Beispiel ist <instanceName> der Name der Instanz und <domain> die Domain, die beim Erstellen der Instanz übergeben wird.
  4. Führen Sie den folgenden Befehl aus, um das benutzerdefinierte Objekt ConfigMap anzuwenden.
    kubectl apply -f <coredns-custom-configmap-yaml-file>
  5. Führen Sie den folgenden Befehl zum Abrufen der Cluster-IP-Adresse aus. Notieren Sie sich die IP-Adresse.
    kubectl get svc -n obp-coredns
  6. Führen Sie den folgenden Befehl aus, um die benutzerdefinierte DNS-Ressource OpenShift zu bearbeiten.
    kubectl edit dnses.operator/default
  7. Aktualisieren Sie den Abschnitt "Zonen" der benutzerdefinierten DNS-Ressource, um Ihre Instanz- und Domainnamen zu verwenden, wie im folgenden Beispiel dargestellt.
    ## Add the following section to the dns custom resource under spec
      servers:
      - forwardPlugin:
          policy: Random
          upstreams:
          - 192.0.2.233
        name: obp-server
        zones:
        - <instanceName>.<domain>
    Im vorherigen Beispiel ist <instanceName> der Name der Instanz und <domain> die übergeordnete Domain.
  8. Um neue Instanzen hinzuzufügen, fügen Sie Einträge zur Datei coredns-custom-configmap hinzu, und aktualisieren Sie die benutzerdefinierte DNS-Ressource OpenShift für die Domain der neuen Instanz, wie im folgenden Beispiel dargestellt:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom
      namespace: obp-coredns
    data:
      obp.server: |2
     
        myobp.example.com:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.myobp\.example\.com istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
     
        otherobp.example.org:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.otherobp\.example\.org istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
    
    
    
    ## Edit the Openshift's DNS custom resource
    kubectl edit dnses.operator/default
     
    ## Add the new instance domain to the existing .spec.servers.zones
      servers:
      - forwardPlugin:
          policy: Random
          upstreams:
          - 192.0.2.233
        name: obp-server
        zones:
        - myobp.example.com
        - otherobp.example.org
    Sie müssen die Blockchain Platform-Instanz mit Blockchain Platform Manager stoppen und neu starten, damit DNS-Änderungen wirksam werden.

DNS konfigurieren

Nachdem Sie eine Oracle Blockchain Platform Enterprise Edition-Instanz erstellt haben, müssen Sie DNS so konfigurieren, dass öffentliche Hostnamen der Komponenten aus dem lokalen Netzwerk OpenShift aufgelöst werden können.

Nachdem Sie eine Instanz erstellt haben, werden der Instanzname und die übergeordnete Domain als Subdomain für die Oracle Blockchain Platform Enterprise Edition-Komponenten verwendet. Sie müssen die DNS-Weiterleitung in der DNS-Standardkonfiguration für OpenShift einrichten, damit DNS-Anforderungen an den benutzerdefinierten DNS-Pod weitergeleitet werden, in dem die angegebenen Services aufgelöst werden. Gehen Sie folgendermaßen vor, um die DNS-Weiterleitung zu konfigurieren.
  1. Führen Sie den folgenden Befehl aus.
    oc new-project obp-coredns
  2. Stellen Sie einen benutzerdefinierten coredns-Server im Namespace obp-coredns bereit, indem Sie den folgenden Befehl ausführen.
    kubectl apply -f <coredns-deployment-yaml-file>
    Verwenden Sie die folgende Manifestdatei mit dem Befehl.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns
      namespace: obp-coredns
    data:
      Corefile: |-
        .:1053 {
          errors
          health {
            lameduck 5s
          }
          ready
          kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
          }
          prometheus :9153
          forward . /etc/resolv.conf
          cache 30
          loop
          reload
          loadbalance
        }
        import custom/*.server
     
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: obp-coredns
      name: obp-coredns
      namespace: obp-coredns
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: obp-coredns
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: obp-coredns
        spec:
          containers:
          - args:
            - -conf
            - /etc/coredns/Corefile
            image: docker.io/coredns/coredns:latest
            imagePullPolicy: IfNotPresent
            livenessProbe:
              failureThreshold: 5
              httpGet:
                path: /health
                port: 8080
                scheme: HTTP
              initialDelaySeconds: 60
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 5
            name: coredns
            ports:
            - containerPort: 1053
              name: dns
              protocol: UDP
            - containerPort: 1053
              name: dns-tcp
              protocol: TCP
            - containerPort: 9153
              name: metrics
              protocol: TCP
            readinessProbe:
              failureThreshold: 3
              httpGet:
                path: /ready
                port: 8181
                scheme: HTTP
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 1
            resources:
              limits:
                memory: 170Mi
              requests:
                cpu: 100m
                memory: 70Mi
            securityContext:
              allowPrivilegeEscalation: false
              capabilities:
                add:
                - NET_BIND_SERVICE
                drop:
                - all
              readOnlyRootFilesystem: true
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/coredns
              name: config-volume
              readOnly: true
            - mountPath: /etc/coredns/custom
              name: custom-config-volume
              readOnly: true
          dnsPolicy: Default
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          serviceAccount: obp-coredns
          serviceAccountName: obp-coredns
          terminationGracePeriodSeconds: 30
          volumes:
          - configMap:
              defaultMode: 420
              items:
              - key: Corefile
                path: Corefile
              name: coredns
            name: config-volume
          - configMap:
              defaultMode: 420
              name: coredns-custom
              optional: true
            name: custom-config-volume
     
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: obp-coredns
      name: obp-coredns
      namespace: obp-coredns
    spec:
      ports:
      - name: dns
        port: 53
        protocol: UDP
        targetPort: 1053
      - name: dns-tcp
        port: 53
        protocol: TCP
        targetPort: 1053  
      - name: metrics
        port: 9153
        protocol: TCP
        targetPort: 9153
      selector:
        app: obp-coredns
      sessionAffinity: None
      type: ClusterIP
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: obp-coredns
      namespace: obp-coredns
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: obp-coredns
    rules:
    - apiGroups:
      - ""
      resources:
      - endpoints
      - services
      - pods
      - namespaces
      verbs:
      - list
      - watch
    - apiGroups:
      - ""
      resources:
      - nodes
      verbs:
      - get
    - apiGroups:
      - discovery.k8s.io
      resources:
      - endpointslices
      verbs:
      - list
      - watch
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: obp-coredns
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: obp-coredns
    subjects:
    - kind: ServiceAccount
      name: obp-coredns
      namespace: obp-coredns
    
  3. Erstellen Sie eine coredns-custom-configmap-Datei im YAML-Format für Ihre Blockchain-Instanz.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom
      namespace: obp-coredns
    data:
      obp.server: |2
     
        <instanceName>.<domain>:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.<instanceName>\.<domain>\ istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
    
    Im vorherigen Beispiel ist <instanceName> der Name der Instanz und <domain> die übergeordnete Domain.
  4. Führen Sie den folgenden Befehl aus, um das benutzerdefinierte Objekt ConfigMap anzuwenden.
    kubectl apply -f <coredns-custom-configmap-yaml-file>
  5. Führen Sie den folgenden Befehl zum Abrufen der Cluster-IP-Adresse aus. Notieren Sie sich die IP-Adresse.
    kubectl get svc -n obp-coredns
  6. Führen Sie den folgenden Befehl aus, um die benutzerdefinierte DNS-Ressource OpenShift zu bearbeiten.
    kubectl edit dnses.operator/default
  7. Aktualisieren Sie den Abschnitt "Zonen" der benutzerdefinierten DNS-Ressource, um Ihre Instanz- und Domainnamen zu verwenden, wie im folgenden Beispiel dargestellt.
    ## Add the following section to the dns custom resource under spec
      servers:
      - forwardPlugin:
          policy: Random
          upstreams:
          - 192.0.2.233
        name: obp-server
        zones:
        - <instanceName>.<domain>
    Im vorherigen Beispiel ist <instanceName> der Name der Instanz und <domain> die übergeordnete Domain.
  8. Um neue Instanzen hinzuzufügen, fügen Sie Einträge zur Datei coredns-custom-configmap hinzu, und aktualisieren Sie die benutzerdefinierte DNS-Ressource OpenShift für die Domain der neuen Instanz, wie im folgenden Beispiel dargestellt.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom
      namespace: obp-coredns
    data:
      obp.server: |2
     
        myobp.example.com:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.myobp\.example\.com istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
     
        otherobp.example.org:1053 {
            log
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
            }
            rewrite stop {
                name regex (.*)\.otherobp\.example\.org istio-ingressgateway.istio-system.svc.cluster.local answer auto
            }
            forward . /etc/resolv.conf
        }
    
    
    
    ## Edit the Openshift's DNS custom resource
    kubectl edit dnses.operator/default
     
    ## Add the new instance domain to the existing .spec.servers.zones
      servers:
      - forwardPlugin:
          policy: Random
          upstreams:
          - 192.0.2.233
        name: obp-server
        zones:
        - myobp.example.com
        - otherobp.example.org
    Sie müssen die Instanz stoppen und neu starten, damit DNS-Änderungen wirksam werden.
Konfigurieren Sie vor dem Zugriff auf die Oracle Blockchain Platform-Servicekonsole die Hostnamenauflösung für die Blockchain-Instanzservices, ähnlich wie zuvor für die Blockchain Platform Manager-Hostnamen. Verwenden Sie den folgenden Befehl, um die Liste der Hostnamen für die erstellte Blockchain-Instanz abzurufen:
kubectl get virtualservice -n <instance-namespace> -o json | jq -r
      .items[].spec.hosts[0]

Weitere Knoten zu Cluster hinzufügen

Die Instanz kann aufgrund unzureichender Knoten im Cluster nicht erstellt werden. In diesem Fall müssen Sie dem Cluster möglicherweise weitere Knoten hinzufügen.
  1. Führen Sie den folgenden Befehl aus, um nach Pods mit dem Status "Ausstehend" zu suchen:
    kubectl get pods -n <instancename> | grep Pending
    Außerdem können Sie prüfen, ob keine Pods verfügbar sind:
    kubectl get pods -n instancename
  2. Prüfen Sie anschließend die verfügbaren Worker-Knoten:
    kubectl get nodes | grep worker
  3. Um zu prüfen, ob Knoten für neue Pods verfügbar sind, führen Sie den folgenden Befehl für jeden Worker-Knoten aus:
    kubectl describe node $<worker_node>
    wobei <worker_node> der Name eines Worker-Knotens ist. Stellen Sie sicher, dass der Worker-Knoten die Kapazität von 100% nicht überschreitet.
  4. Um zusätzliche Knoten hinzuzufügen, rufen Sie zuerst die Anzahl von MachineSets im Cluster ab:
    oc get machinesets -n openshift-machine-api
  5. Versuchen Sie für jede MachineSets mit weniger als 2 Knoten, sie zu skalieren.
    oc scale --replicas=2 machineset <obpee00-qtthx-worker-eastus2> -n openshift-machine-api
    wobei <obpee00-qtthx-worker-eastus2> ein Beispielname einer MachineSet ist, die auf 2 Knoten hochskaliert werden soll.
  6. Fragen Sie die MachineSets erneut ab, bis die Liste der verfügbaren Knoten die Anzahl der ausgewählten Knoten erreicht.
  7. Sie können Ihre nicht erfolgreichen Instanzen jetzt erneut bereitstellen.

Nachdem die Instanz erstellt wurde und in der Liste "Instanzen" aufgeführt wird, können Sie die Servicekonsole aus dem Menü neben dem Instanznamen starten. Verwenden Sie die Konsole, um Ihr Netzwerk zu konfigurieren, wie unter Was ist die Konsole? in Oracle Blockchain Platform verwenden beschrieben.