由于gogs.io提供了一个docker 镜像 ,我认为它必须直接安装在带有kubernetes的Google容器引擎之上。
经过几个小时的摆弄之后,我得到了两个configuration文件,正如我在这里看到的一个问题主题:
发行线程中的文件正在使用一个ReplicationController,而不是一个吊舱..而该服务也没有使用LoadBalancer作为types – 我无法得到它的工作方式,所以我把它改为一个Pod和一个服务,包括LoadBalancer就像在google的wordpress教程中一样
gogs.yml:
apiVersion: v1 kind: Pod metadata: name: gogs labels: name: gogs spec: containers: - name: gogs image: gogs/gogs ports: - containerPort: 3000 - containerPort: 22 volumeMounts: - mountPath: /data name: data - name: postgres image: postgres ports: - containerPort: 5432 volumeMounts: - mountPath: /var/lib/postgresql/data name: postgres env: - name: POSTGRES_USER value: "gogs" - name: POSTGRES_PASSWORD value: "gogs" volumes: - name: data gcePersistentDisk: # This disk must already exist. pdName: gogs-stage-data-disk fsType: ext4 - name: postgres gcePersistentDisk: # This disk must already exist. pdName: gogs-stage-postgres-disk fsType: ext4
视护目镜,service.yml:
apiVersion: v1 kind: Service metadata: labels: name: gogs-frontend name: gogs-frontend spec: type: LoadBalancer ports: # The port that this service should serve on. - port: 80 targetPort: 3000 protocol: TCP selector: name: gogs
然后,我基本上按照本教程中的步骤包括数据和数据库目录的外部磁盘。
创build一个新项目,设置计算区域(gcloud config set ..)
创build一个新的集群gcloud container clusters create gogs-stage --num-nodes 1
创build新的持久性磁盘
gcloud compute disks create --size 200GB gogs-stage-data-disk
gcloud compute disks create --size 200GB gogs-stage-postgres-disk
创buildpod kubectl create -f gogs.yml
创build服务kubectl create -f gogs-service.yml
现在在创build吊舱的时候,当我等待几分钟时,它也不会从“等待”转换到“准备好” – 我检查与kubectl get pod gogs
我的设置有什么问题? 我怎么检查它? 我可以用sshlogin..当我看到/ var / log / messages,我可以看到一些docker错误在文件的末尾说:
aufs au_opts_verify:1570:docker[4711]: dir perm1 breaks the protection by the permission bits on the lower branch
但是只有这样,目前我找不到任何指向正确方向的东西。 任何帮助非常赞赏:)
您还应该使用PGDATA环境variables指定默认数据目录位置。
尝试这个:
apiVersion: v1 kind: Pod metadata: name: gogs labels: name: gogs spec: containers: - name: gogs image: gogs/gogs ports: - containerPort: 3000 - containerPort: 22 volumeMounts: - mountPath: /data name: data - name: postgres image: postgres ports: - containerPort: 5432 env: - name : PGDATA value: /var/lib/postgresql/data/pgdata - name: POSTGRES_USER value: myuser - name: POSTGRES_PASSWORD value: mypassword - name: POSTGRES_DB value: mydb volumeMounts: - mountPath: /var/lib/postgresql/data name: postgres volumes: - name: data gcePersistentDisk: pdName: gogs-stage-data-disk fsType: ext4 - name: postgres gcePersistentDisk: pdName: gogs-stage-postgres-disk fsType: ext4