我想在Google容器引擎中运行nexus3。

我创建了一个永久磁盘,并配置了以下部署文件:

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

我的错误在哪里?要使nexus写入磁盘和文件夹,需要做什么?

最好,
拉尔斯

最佳答案

好吧,我在创建问题后直接自己解决了问题。 :)

关于https://github.com/sonatype/docker-nexus3,应用程序在另一个pid上运行,然后在root上运行。

将其添加到部署文件中就可以了:

spec:
  securityContext:
    fsGroup: 200

关于docker - GKE:连结磁盘不可写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46927317/

10-16 16:05