LoginSignup
2
1

More than 3 years have passed since last update.

GCPのCloud Runで一瞬でKnative環境を構築する

Posted at

Knativeとは

サーバーレス機能を提供

k8s上に構築されるが、クラスターに依存せず、サーバーレスなワークロードの実行をする。
k8sの機能を利用しながら簡単にサーバーレスな環境構築ができるいいとこ取り環境

Knative Build

Kubernetesでビルドをする場合の手順

  • プログラムはGitHubにpushしておく。
  • Dockerfileをbuildしてimageを作成
  • それをコンテナ内にCOPYしておく必要があるので、毎回違うイメージが出来る。
  • Cloud Registryにdocker push
  • kubernetesからデプロイしたいimageを選択できるようにymlを作る

これらを実際に行うには、まずはGoogleCloudBuild、GoogleCloudPipelineなどを用いてCIを設定する必要がある。また、TravisやJenkinsのようなツールでコンテナを構築する必要がある。

Knative Buildでは、
これらの作業を全てKnativeによって行うことができる。
つまり、クラスター内部でBuildを完結させられる。

Knative Serve

ServiceのConfigとRoutingを一括して巻き取ってくれる。
また、マイクロサービスのサービスメッシュで標準的なistioのコンポーネントが組み込まれている。
これによって、マイクロサービスでの、トラフィック管理、ルーティング、オートスケールもしくはゼロスケールをしてくれる。

また、pushを行うと毎回プロビジョンが保管されるため、大規模アップデートにおける段階的なロールアウトやグロースハックにおけるA/Bテストも、Knative Serveを用いて行うことができる。
当然、ロールアップの際にサービスを停止する必要もない。

では、本題のCloudRunとは

上で説明した、Knativeのマネージドサービスである。

Knative から作成されているため、Cloud Run を使用してフルマネージド型でコンテナを実行するか、Cloud Run with GKE を使用して Google Kubernetes Engine クラスタ内でコンテナを実行するかを選択できる。

ここでは、フルマネージド型CloudRunでHTTP リクエスト経由で呼び出し可能なステートレス コンテナを実行する。

何がすごいって、フルマネージドで、サーバーレスなので、インフラ管理なしで、Kubernetesの基本的な機能がつかえるということ。

一瞬でKnative環境を構築する。

[準備]DockerImageを作っておく。

まず、Dockerfileを作成して
https://qiita.com/riita10069/items/7c6d2958294910d346d1
https://qiita.com/riita10069/items/396f1d86cd7ebe21f75b
必要であれば、docker-composeも作成して
https://qiita.com/riita10069/items/5c7eac45486c8fff91fb

GCRにpushする。

ビルド

docker build -t practice:1 .
docker-compose build

Resistory用にタグをつける必要があるので忘れないように

docker tag images:tag gcr.io/$PROJECT_ID/imageの名前:tag

GCRにpushする

gcloud docker --push gcr.io/$PROJECT_ID/imageの名前:tag

CloudRunを設定する。

まず、CloudRunのAPIを有効化して
コンソールで、CloudRunを開く

image.png

これのサービスを作成を選択

image.png

ここに指定したタグ名を
gcr.io/$PROJECT_ID/imageの名前:tag
って書いてあげて
「作成」をクリックしたらコンテナが完成する

2
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
2
1