LoginSignup
14
12

More than 5 years have passed since last update.

Azure に Kubernetes セットアップしてサービス毎にデプロイできるCI/CDパイプライン作ってみた

Last updated at Posted at 2017-05-25

マイクロサービスを実施したいお客様がいる時に、頻繁に聞かれることは、「連携するサービスがあるのだが、それぞれのサービスを個別にデプロイしたい。」このような、要望に答えるテクニックとして、Consumer Driven Contract と言う手法があります。私も前から知っていましたが、実物を見たことがありませんでした。だから、それをGo言語で試してみて、それを含んだCI/CDのサンプルを作成してみました。

デプロイする先としてAzure上の Kubernetes を使っています。Azure上のKubernetesには馴染みがある人は少ないと思うので、Kubernetesのインストール、セットアップから、つまづくポイント、Kubernetesってなに?と言う人のための簡単なデモも一緒に作ってあります。
CI/CDの構築の場所としては、Visual Studio Team Servicesを使っています。このサービスは、日本では相当広まっていないですが、私的には快適すぎて手放せず、私がこのサービスを紹介したお客様はみんな喜んで使ってくれています!

最後に、Pactのイメージってなかなかわかないと思うので、Pact-Goのデモ動画もつけています。
動画はすべて私の解説入りなので、おひまなときにでもどうぞ!

あと、ここで、作ったサンプルはすべてGitHubで公開しています。PactをDockerにパックするための、Dockerfileや、k8sのyamlなども置いています。

Kubernetes を Azure上にセットアップする

ポータルを使って、デプロイ。再セットアップが可能な、ARMテンプレートコードの落とし方。
Azureでは、K8sをデプロイするのに3つの方法がありますが、文末のPPTを参考にしてください。

1. Zero to Kubernetes on Azure
ここで使われているサービスプリンシパルは削除済みです。

基本的な Kubernetes の使い方

デプロイや、ローリングアップデートなど

2. Kubernetes basic operation on Azure

Azure Container Registryと シークレットの扱い

K8sでのシークレットの扱い

3. Kubernetes Secret management with Azure Container Registry

VSTSでの、CI/CDパイプライン

基礎的なセットアップです。yamlファイルの書き換えは、Replaceタスクと言う
タスクで実施します。詳細はパワーポイントを参考に!

4. Kubernetes CI/CD pipeline with VSTS

Consumer Driven Contract Pact-go のサンプル

Pact-Goを使った、ConsumerDrivenContract。
ちなみに、実際に動かすには、PactBrokerをどこかにデプロイして、
テストを動かす時に、環境変数(PACT_BROKER_URL)に、そのURLを指定してください。

5. Consumer Driven Contract Pact-Go on Azure kubernetes

リソース

サンプルソースがはいったGitHubリポジトリ
Pact on kubernetes

発表資料
獲れたて OSS x DevOps 自動化三昧を満喫セヨ

14
12
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
14
12