[GCP] GoのコンテナをContainerRegistryに登録して使う

お世話になっております。
しゃまとんです。

KubernetesでGoを使いたいのですが、そのままコードを配置みたいな感じではなく、Dockerの様にコンテナイメージを作成してPodとして配置するような形式をとります。
(勿論、やり方はコレ以外にもありそう?)

GCPにはDockerhubのようなコンテナのホスティングサービス(Container Registry)があり、yamlからアップロード済みイメージを利用することができるようになっています。

イメージを作成して、それを配置するだけとなると運用も楽ですしデプロイもRollingUpdateをいい感じにしてくれるみたいなので、それを前提にして考えたいと思います。

まずは簡単にテスト用のコードを用意します。
アドレスで簡単な返答をするサンプルです。

次にこれをコンテナイメージにしていきます。
Dockerfileを下記のような感じで作成しておきます。
これをビルドしてイメージが作成されたら、Container Registryにアップロードしましょう。(your-project-idは置き換えてください)

イメージが存在しているかコンソールから確認してみましょう。
以下のようにsample-web-appが追加されていますね。

試しにローカルにpullして確認してみます。一応手元のビルドしたものを削除してしまいます。

アクセスすると…

同じように使えますね!Kubernetesからも同じように動作して使えますが、Dockerと一緒で使い捨てされることを考慮しておかないといけないので、運用の際には用途を決めておく必要がありそうです。

以上です。

■ 参考
【GCP入門編・第8回】 Container Registry での Docker イメージの使用方法!