GKE:nexus磁盘不可写入

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

我创build了一个持久磁盘并configuration了以下部署文件:

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 xxxx 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 

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

最好,拉尔斯

那么我在创build问题后直接自己解决了。 🙂

关于https://github.com/sonatype/docker-nexus3 ,应用程序运行在不同的pid上,然后是root。

把这个添加到部署文件中有一个诀窍:

 spec: securityContext: fsGroup: 200