GKE: нексусный диск недоступен для записи

Я хотел бы запустить nexus3 в Google Container Engine.

Я создал постоянный диск и настроил следующий файл развертывания:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nexus3
  labels:
    app: nexus3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nexus3
  template:
    metadata:
      labels:
        app: nexus3
        tier: web
    spec:
      containers:
      - image: gcr.io/nexustest-182520/nexus3:3.6.0
        name: nexus3
        volumeMounts:
        - mountPath: /nexus-data
          name: nexus3-persistent-storage
        ports:
        - containerPort: 8081
      volumes:
      - name: nexus3-persistent-storage
        gcePersistentDisk:
          pdName: nexus3-disk
          fsType: ext4

Развертывание завершается с ошибкой:

kubectl get pods -o=wide
NAME                      READY     STATUS    RESTARTS   AGE       IP           NODE
nexus3-1260341461-mj7rf   0/1       Error     2          36s       x.x.x.x   gke-nexus-cluster-default-pool-9a58e4f2-p1t9


kubectl describe po/nexus3-1260341461-mj7rf
[...]
Events:
  FirstSeen LastSeen    Count   From                            SubObjectPath       Type        Reason          Message
  --------- --------    -----   ----                            -------------       --------    ------          -------
  1m        1m      1   default-scheduler                               Normal      Scheduled       Successfully assigned nexus3-1260341461-mj7rf to gke-nexus-cluster-default-pool-9a58e4f2-p1t9
  1m        1m      1   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9               Normal      SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "default-token-gsnbn"
  1m        1m      1   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9               Normal      SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "nexus3-persistent-storage"
  1m        12s     4   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9   spec.containers{nexus3} Normal      Pulled          Container image "gcr.io/nexustest-182520/nexus3:3.6.0" already present on machine
  1m        12s     4   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9   spec.containers{nexus3} Normal      Created         Created container
  1m        12s     4   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9   spec.containers{nexus3} Normal      Started         Started container
  56s       8s      4   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9   spec.containers{nexus3} Warning     BackOff         Back-off restarting failed container
  56s       8s      4   kubelet, gke-nexus-cluster-default-pool-9a58e4f2-p1t9               Warning     FailedSync      Error syncing pod

Думаю перезагрузка происходит из-за того, что сам нексус не умеет запускаться. Я нашел это в журналах:

mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied

а также

Unable to update instance pid: Unable to create directory /nexus-data/instances

Где моя ошибка? Что нужно сделать, чтобы нексус мог писать на диск и в папку?

Лучший, Ларс


person reschifl    schedule 25.10.2017    source источник


Ответы (1)


Ну, я решил это сам сразу после создания вопроса. :)

Что касается https://github.com/sonatype/docker-nexus3, приложение работает на другом pid, затем root.

Добавление этого в файл развертывания помогло:

spec:
  securityContext:
    fsGroup: 200
person reschifl    schedule 25.10.2017
comment
Это помогло мне установить nexus3 на AWS с постоянным томом и тем же сообщением об ошибке. - person monty0; 07.12.2017
comment
Помогли мне с установкой nexus3 на TencentCloud TKE. - person woodylic; 17.05.2019