2017-11-17 7 views
1

Gitlab-ciからGKEへのノードアプリケーションの導入方法は?私は既にクラスタ統合を有効にして機能させています。しかし、それが意味することに関する文書はほとんど存在しません。どのGKEクラスタに接続している変数が私に与えられているのか、それを私のCIでどのように使うのか分かりません。Gitlab 10.1 Google Kubernetes Engineへの展開

enter image description here

ここに私のgitlab-ci.ymlだ、それは誰もいないようにみえた、私はプライベートレジストリを使用するために何とかセットアップGKEをGoogleやためにそれをコピーする必要がありますつまり、gitlabhqレジストリに画像を置きます管理しています。

+0

これは、既知の粗いスポットですhttps://gitlab.com/help/topics/autodevops/index.md# private-project-support –

+0

コンテナに未だ状態があり、ポッドにCrashLoopBackOff がある場合は、あなた自身のDockerfileを使用している可能性があります。ヘルムチャートはポート5000に公開することを期待しています。https://docs.gitlab .com/ee/topics/autodevops /#auto-build –

答えて

1

私はAuto DevOps統合を使用していませんが、実際のアプローチを試して一般化することができます。

k8sクラスタにティラーがインストールされている場合は、アプリケーション用のヘルムチャートを作成するのが最適です。

:舵によって管理 https://github.com/kubernetes/helm/blob/master/docs/charts.md(チャートを管理するために兜を使用して確認してください)

基本deployment.yaml次のようになります。あなたはすでに、ここではそれを行う方法についてのAAのチュートリアルがあることを行っていない場合は

image: 
    repository: registry.gitlab.com/my-proj 
    tag: latest 

サンプル.gitlab-ci.ymlファイルは次のようになります:

.Valuesファイル内
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: {{ template "name" . }} 
    labels: 
    app: {{ template "name" . }} 
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 
    release: {{ .Release.Name }} 
    heritage: {{ .Release.Service }} 
spec: 
    replicas: {{ .Values.replicaCount }} 
    template: 
    metadata: 
     labels: 
     app: {{ template "name" . }} 
     release: {{ .Release.Name }} 
    spec: 
     containers: 
     - name: {{ .Chart.Name }} 
      image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" 
      imagePullPolicy: {{ .Values.image.pullPolicy }} 

と対応する値

ビルドフェーズでドッカーイメージが公開され、展開フェーズでは、そのイメージをregistry.gitlab.com/my-projからダウンロードしようとするヘルムチャートがインストールされます。

私は、k8sクラスタがそのレジストリにアクセスできるとします。レジストリがプライベートである場合は、(それが自動的に作成されていない限り)認証トークンを保持しているkubernetes秘密を作成する必要があります。 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

使用しているデフォルトのパイプラインの画像(image: docker:git)舵を持っていませんCLIがインストールされているので、helmとkubectlがインストールされているイメージでイメージを変更する必要があります。 gitlabチュートリアル 、彼らは各実行でインストールをやっているように見える: https://gitlab.com/gitlab-org/gitlab-ci-yml/blob/master/Auto-DevOps.gitlab-ci.ymlfunction install_dependencies()をご確認ください)

+0

私はプライベートドッカーイメージリポジトリを持っています。私は、K8への秘密の移動を管理するAuto DevOpsルートに行った。あなたのDockerfileに基づいてチャートを作成し、ポート5000を使用していると仮定します。その秘密は永久的なものではなく、オートスケーリングを破ります。 –