LoginSignup
0
1

More than 5 years have passed since last update.

Rancher2.0 の Gitlab を docker-compose での管理に移行する

Last updated at Posted at 2018-12-05

はじめに

以前Rancher2.0でGitlabを導入した のですが、結局管理する人は限られている、かつ1ホストで動いているのでdocker-composeを使ったほうが管理が楽なのではと感じてきました。「少しは管理が楽になるのではないかという淡い期待」は裏切られました。

Docker imageは、Rancher2.0のときと同じく gitlab/gitlab-ce を使います。

まず、現在 /opt/gitlab/ /log/gitlab/ /etc/gitlab/ にマウントしているファイルをコピーしてマウントしてみます。
下記のような docker-compose.yml を書きました。

docker-compose.yml
version: "3"
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    ports:
      - "10080:80"
    volumes:
      - /mnt/gitlab/gitlab/data:/var/opt/gitlab
      - /mnt/gitlab/gitlab/config:/etc/gitlab
      - /mnt/gitlab/gitlab/log:/var/log/gitlab

権限エラー

しかし、このまま docker-compose up すると permission error で怒られます... :cry:

起動時に表示される、下記のコマンドでなそうとするものの直らず...

docker-compose run gitlab update-permissions

ググると、以下のページが見つかりました。ページに書いてあるとおりに、コマンドを実行してみます。
https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2976

docker-compose run gitlab chmod -R 2770 /var/opt/gitlab/git-data/repositories

コマンドを実行すると、このエラーは直ったみたいです。

Prometheusのエラー

しかし、さらにエラーを吐かれます。
調べてみると、どうやらPrometheusのエラーです。GitlabではPrometheusというモニタリングサービスが動いているようです。
https://docs.gitlab.com/ce/administration/monitoring/prometheus/index.html

2018-12-05_08:09:22.10898 time="2018-12-05T08:09:22Z" level=error msg="Error creating HTTP client for job "kubernetes-cadvisor": unable to use specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" source="scrape.go:121" 
2018-12-05_08:09:22.10898 time="2018-12-05T08:09:22Z" level=error msg="Cannot create Kubernetes discovery: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory" source="discovery.go:86" 
2018-12-05_08:09:22.10899 time="2018-12-05T08:09:22Z" level=error msg="Error creating HTTP client for job "kubernetes-nodes": unable to use specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" source="scrape.go:121" 
2018-12-05_08:09:22.10900 time="2018-12-05T08:09:22Z" level=error msg="Cannot create Kubernetes discovery: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory" source="discovery.go:86" 
2018-12-05_08:09:22.10901 time="2018-12-05T08:09:22Z" level=error <img width="785" alt="Screen Shot 2018-12-05 at 5.46.49 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/100996/248fb337-3be7-9ef4-20c0-624496549290.png">
msg="Error creating HTTP client for job "kubernetes-pods": unable to use specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" source="scrape.go:121" 

Kubenetes環境でうごいているときには、クラスタのノードとポットからメトリックを収集するようです。(Rancher2.0にはKubernetesが使われてます。)
今回は無効にしたいので、ドキュメントのとおり、gitlab.rb を書き換えます。 コメントは外してください。

prometheus [ 'monitor_kubernetes' ] = false

動いた :pray: :pray:

docker-compose up -d すると動きました。
Screen Shot 2018-12-05 at 5.46.49 PM.png

追記:データベースの移行に失敗してた

500エラーを返すようになるので、ログを見たらデータベースのエラーだった。Rancher2.0のpodのコンソールでバックアップを作成して、docker-composeのほうでリストアしたら、今のところは普通に動いています。
https://docs.gitlab.com/ee/raketasks/backup_restore.html#restore

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1