Назад | Перейти на главную страницу

Трудно установить gogs.io на движок Google Container

Поскольку gogs.io предлагает образ докера, я подумал, что должно быть просто установить его поверх контейнерного движка Google с кубернетами.

После нескольких часов возни у меня теперь есть два файла конфигурации, поскольку я видел их в теме. Вот:

Файлы в потоке задач используют ReplicationController вместо модуля. И служба также не использует LoadBalancer в качестве типа - я тоже не мог заставить его работать таким образом, поэтому я изменил его на модуль и службу, включая 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

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

Затем я выполнил в основном те же шаги, что и в этот учебник включить внешние диски для каталогов данных и db.

gcloud compute disks create --size 200GB gogs-stage-data-disk

gcloud compute disks create --size 200GB gogs-stage-postgres-disk

Теперь в момент создания модуля он никогда не переключается из состояния «Ожидание» в состояние «Готово», даже если я жду несколько минут - я проверяю kubectl get pod gogs

Что не так с моей настройкой? И как это проверить? Я могу войти в систему с помощью ssh ... когда я смотрю туда в / var / log / messages, я вижу некоторые ошибки докеров в конце файла, говорящие:

aufs au_opts_verify:1570:docker[4711]: dir perm1 breaks the protection by the permission bits on the lower branch

Но только с этим я пока не мог найти ничего, что указывало бы мне в правильном направлении. Любая помощь очень ценится :)

Вы также должны указать расположение каталога данных по умолчанию, используя PGDATA переменная окружающей среды.

Попробуй это:

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