私の会社はKuberenetesを1年以上、GitLabを約6ヶ月間運用してきました。最近、GitLab 9.xにアップグレードして、KubeのCI +アプリ設定に関する決定がどうなっているのか把握しようとしています。この機能はすばらしく、私たちの環境で動作させるのが大好きです。GitLab 9.x Kubernetes Integration
GitLabは、サービス/アプリケーションと同等のネームスペースで分割された1つのクラスタ内のすべての環境と、環境に相当するアプリケーションを1つだけ持つことを期待しているようです。
namespace = hello-world
app = development
app = qa
app = production
現実世界の例では、我々はうまくいくだろう反対を持っていることを好むだろう:これはGitLabが見えるように、私のKuberenetes環境、名前空間に分け、あなたのサービスを単一のクラスタを望んでいるように見えるものです同様
DEVELOPMENT CLUSTER
namespace = development
app = hello-world
QA CLUSTER
namespace = qa
app = hello-world
PRODUCTION CLUSTER
namespace = production
app = hello-world
名前空間は、アプリケーションとアプリケーション環境も可能持つ単一のクラスタでは、我々はすべてをアップグレードせずKUBEの最新バージョンにアップグレードする能力を持っていないでしょう。たぶん私は何かが不足しているが、私が読んでいるものに基づいて、これをテストした後、これはそれが設計された方法であるかのように見える。参考のため
これは+私のCIは、デプロイボードを作るために今どのように見えるか
development:
<<: *deploy_definition
stage: development
environment: hello-world
script:
deploy.sh -a "hello-world"
ターミナル満足しているが、それはこの混乱に追加するには、この
development:
<<: *deploy_definition
stage: development
environment: development
script:
deploy.sh -a "hello-world"
ようになっているはず、彼ら[統合]タブで接続するKubernetesマスターを1つだけ与えます。
これは間違いですか、何か不足していますか?
ねえ、あなたは、これがどのように見えるかのビットを拡張することができ、作業ボードを展開しました誰私は見つけることができるいくつかのいずれかをしているので、?具体的には、各段階でどのような環境が必要ですか?今私たちは 'review/*'環境と 'prod'を実行していますが、あなたの環境では' ' –
@ north.misterの環境にしか展開できないようです。 kubernetesの統合ですべてをセットアップしたら、上記のようにciを設定する必要があります。私が動作させる唯一の方法は、gitlab-ciファイル内の環境名をデプロイメント用のkubernetesテンプレートのアプリ名と同じにすることです(ref https://kubernetes.io/docs/concepts/workloads/)。コントローラ/デプロイメント/。これはおそらく単一のkubernetes環境しか持たないので、おそらくあなたのために働くでしょうが、私たちは環境ごとにクラスターを持っています。うまくいけば、これはあなたを助けます。 –