Skip to content

Latest commit

 

History

History
257 lines (186 loc) · 8.99 KB

File metadata and controls

257 lines (186 loc) · 8.99 KB

FAQ

Inhalt

Was kann ich tun, wenn ein nscale Standard Container nicht startet?

Wenn ein nscale Standard Container nicht startet, kann es dafür viele Gründe geben. Um den Start eines nscale Standard Containers genauer zu untersuchen, können Sie wie folgt vorgehen:

  1. Starten Sie den jeweiligen nscale Standard Container, ohne dabei die eigentliche Applikation zu starten. Jeder nscale Standard Container verwendet einen ENTRYPOINT und ein CMD. Die CMD-Eigenschaft kann leicht übersteuert werden, sodass der Start der eigentlichen Applikation verhindert werden kann.

Weitere Informationen zu CMD und ENTRYPOINT:

  1. Nun können Sie den Start der Applikation durch einen direkten Aufruf in der bash untersuchen. Die jeweilige nscale Standard Container Applikation wird über ein run.sh-Script in dem jeweiligen WORKDIR gestartet.

Beispiel Docker:

docker run -it nscale/[container-image]:[container-version] [optionen] bash

Beispiel Docker Compose:

Ändern Sie Ihre docker compose.yaml so ab, dass ein sleep infinity ausgeführt wird.
Anschließend haben Sie die Möglichkeit, sich mit docker compose exec [service name] bash auf den Container aufzuschalten.

command: ["sleep", "infinity"]

Weitere Informationen: https://docs.docker.com/compose/compose-file/compose-file-v3/#command

Beispiel Kubernetes:

Ändern Sie die Datei [container].yaml so ab, dass ein sleep infinity ausgeführt wird.
Anschließend haben Sie die Möglichkeit, sich mit kubectl exec -it [pod-name] -n [namespace] -- bash auf den Container aufzuschalten.

containers:
    ...
    command:
        - "sleep"
        - "infinity"

Wie kann ich Netzwerk Problem im Cluster debuggen?

Unsere nscale Standard Container dürfen aus Gründen der Sicherheit keine Linux Tools zum Debuggen der Laufzeitumgebung enthalten. Für diesen Zweck bieten sich Open Source Images wie z.B. netshoot an.

Zum Debugging im Kubernetes Cluster empfiehlt sich die Verwendung von debug Container. (Debugging with an ephemeral debug container).

Wie kann ich die Zeitzone ändern?

Die nscale Standard Container verwenden UTC als Zeitzone.
Sie können die Zeitzone für den jeweiligen Container mit der Umgebungsvariable TZ setzen.

Beispiel Docker:

docker run -e TZ=Europe/Berlin [image]

Beispiel Docker Compose:

environment:
    - TZ=Europe/Berlin

Beispiel Kubernetes:

- name: TZ
  value: "Europe/Berlin"

Weitere Informationen: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html

Wie kann ich Java Startoptionen (JAVA_OPTS) setzen?

Einige nscale Komponenten sind in Java implementiert. Je nach Installation und Anwendungsszenario kann es notwendig sein, Java Startoptionen anzupassen. Alle nscale Standard Container, die eine Java-Applikation beinhalten, können über die Umgebungsvariable JAVA_OPTS angepasst werden.

Folgende nscale Standard Container beinhalten Java-Applikationen:

  • nscale/application-layer
  • nscale/application-layer-web
  • nscale/cmis-connector
  • nscale/erp-cmis-connector
  • nscale/console
  • nscale/erp-ilm-connector
  • nscale/monitoring-console
  • nscale/rendition-server
  • nscale/webdav-connector

Beispiel Docker:

docker run -e JAVA_OPTS=-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true [image]

Beispiel Docker Compose:

environment:
    - JAVA_OPTS=-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true

Beispiel Kubernetes:

- name: JAVA_OPTS
  value: "-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true"

Wie kann ich die Java Heap Size anpassen?

Je nach Installation und Anwendungsszenario kann es notwendig sein, die Java Heap Size zu vergrößern. Die Java Heap Size können Sie über die Umgebungsvariable JAVA_OPTS anpassen.

Weitere Informationen:
https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

Beispiel Docker:

docker run -e JAVA_OPTS=-Xmx3g [image]

In diesem Beispiel wurde die Java Heap Size so gewählt, dass 3 Gigabyte im Container verwendet werden.

Beispiel Docker Compose:

environment:
    - JAVA_OPTS=-Xmx3g

In diesem Beispiel wurde die Java Heap Size so gewählt, dass 3 Gigabyte im Container verwendet werden.

Beispiel Kubernetes:

- name: JAVA_OPTS
  value: "-XX:MaxRAMPercentage=50.0"

In diesem Beispiel wurde die Java Heap Size so gewählt, dass 85% des im Container verfügbaren Speichers verwendet wird. Beachten Sie, dass die Eigenschaft resources.requests in der Container-Definition Auswirkungen auf die Berechnung hat.

Weitere Informationen: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers

Wie kann ich die Microsoft Windows Schriftarten (Microsoft TrueType Fonts) verwenden?

Die Microsoft Windows Schriftarten werden nicht mitgeliefert.
Eine Installationsanleitung finden Sie hier:

Wie kann ich mit Kustomize Änderungen an der Kubernetes-Konfiguration vornehmen?

In diesem Beispiel wird gezeigt, wie Sie mit Hilfe von kustomize die Konfiguration von nscale Server Storage Layer anpassen können. Es werden neue Umgebungsvariablen hinzugefügt, um einen neuen Archivtyp und ein Harddisk-Device zu definieren. Außerdem soll die Konfiguration default verwendet werden, damit automatisch PVCund PV erzeugt werden.

Weitere Informationen zu Kustomize finden Sie hier:
https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/

  1. Legen Sie im Ordner kubernetes/kustomize/nscale/overlays den Ordner custom an.

  2. Wechseln Sie in den Ordner kubernetes/kustomize/nscale/overlays/custom

  3. Erstellen Sie eine Datei kustomization.yaml mit folgendem Inhalt:

bases:
- ../default

patchesStrategicMerge:
- storage-layer-env.yaml
  1. Erzeugen Sie eine Datei storage-layer-env.yaml mit folgendem Inhalt:
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: storage-layer
spec:
  template:
    spec:
      containers:
      - name: storage-layer    
        env:
            - name: NSTL_ARCHIVETYPE_900_NAME
              value: "DEMOARCHIVETYPE"
            - name: NSTL_ARCHIVETYPE_900_ID
              value: "900"
            - name: NSTL_ARCHIVETYPE_900_LOCALMIGRATION
              value: "0"
            - name: NSTL_ARCHIVETYPE_900_LOCALMIGRATIONTYPE
              value: "HD"
            - name: NSTL_ARCHIVETYPE_900_HARDDISK
              value: "1"
            - name: NSTL_HarddiskDevice_0_ARCHIVETYPES
              value: "DEMOARCHIVETYPE"
            - name: NSTL_HarddiskDevice_0_INDEX
              value: "1"
            - name: NSTL_HarddiskDevice_0_NAME
              value: "HD"
            - name: NSTL_HarddiskDevice_0_PATH
              value: "/mnt"
            - name: NSTL_HarddiskDevice_0_PERMANENTMIGRATION
              value: "1"
  1. Starten Sie alle Komponenten mit folgendem Kommando:
kubectl apply -k . -n nscale
  1. Prüfen Sie mit folgendem Kommando, ob die Umgebungsvariablen korrekt gesetzt wurden:
kubectl describe pod/storage-layer-0 -n nscale

Wie kann ich den ContextPath der Web Anwendungen ändern?

Leider ist es noch nicht möglich den ContextPath der Container über den Proxy zu ändern. Deshalb müssen die jeweiligen Komponenten einzeln konfiguriert werden wenn der ContextPath geändert werden soll.

Komponente Erläuterung
application-layer-web In der nscale_web.xml muss der Wert Context@path angepasst werden und entsprechend diesem Namen die WAR Datei umbenannt werden (u.U auf ROOT.war um keinen ContextPath zu verwenden.)