GCP+GKE+Go言語で構築

公式ドキュメントに沿って環境を構築する

以下の公式ドキュメントページを参考に進める
Google Cloud > Kubernetes Engine > ドキュメント > クイックスタート

アーキテクチャイメージ

GCPアカウント作成 ※アカウントがない場合のみ

こちらのGoogle Cloud Platformページから、「無料トライアル」 ボタンをクリック して、アカウントを作成
※前提条件:Googleアカウントを取得していること
( Google アカウントは、GmailやGoogle+などのGoogleが提供するサービスで使用するアカウントのこと )

利用規約にチェック、最新情報をメールで通知したい場合はチェックして、「続行」ボタン押下

アカウントの種類を今回はプライベート用で使用するので「個人」を選択、名前と住所、
クレジットカード情報を入力して「無料トライアルを開始」ボタンを押下 してアカウント登録完了

無料トライアル特典
$300 相当のクレジットを無料でご提供され、Google Cloud Platformで今後12 か月間利用できる300ドル分のクレジットを獲得。
無料トライアル期間が終了しても、自動的に請求されることはないので安心

始める前に

1 Google Cloud Platform Console で Kubernetes Engine ページにアクセスします。
2 プロジェクトを作成または選択します。

3 API と関連サービスが有効になるのを待ちます。これには数分かかることがあります。

4 プロジェクトに対して課金が有効になっていることを確認します。

Google Cloud Platform Consoleを開いて、作成したプロジェクトを選択して、「プロジェクト設定に移動」押下

左のメニューを開いて、「お支払い」押下

お支払い画面の「請求先アカウント 管理」リンク押下

請求先アカウントに作成したプロジェクトが表示されていること

シェルを選択する

ここでは、シェル操作として以下の二つを選択できるが、今回はGoogle Cloud Shellを選択。

gcloudのデフォルト設定を構成する

下記二つのデフォルト設定を Google Cloud Shellにてコマンドを入力する

■ デフォルトのプロジェクトの設定 (プロジェクトの識別

gcloud config set project [PROJECT_ID]

■ デフォルトのコンピューティング ゾーンの設定

gcloud config set compute/zone [COMPUTE_ZONE]

Kubernetes Engine クラスタの作成

クラスタは、少なくとも 1 つのクラスタ マスター マシンと、ノードと呼ばれる複数のワーカーマシンで構成される

■クラスタ作成コマンド  ※[CLUSTER_NAME]は任意の名前を設定

gcloud container clusters create [CLUSTER_NAME]

※「 –num-nodes=3」オプションを指定するとノード数を3つに指定できる

■クラスタの認証情報を取得する
 クラスタを作成した後、そのクラスタと相互作用するために必要な認証情報を取得する

クラスタに対して認証を行うには、次のコマンドを実行

gcloud container clusters get-credentials [CLUSTER_NAME]

アプリケーションをクラスタにデプロイする

ここでは、サンプルとして用意されている hello-app というウェブ アプリケーションをデプロイする
※ hello-app のソースコードを読むには、hello-app コードのレビュー セクションを参照

クラスタで hello-app を実行するには、次のコマンドを実行

kubectl run hello-server --image gcr.io/google-samples/hello-app:1.0 --port 8080

【Kubernetesコマンド説明】
kubectl run
 hello-serverという名前の新しいDeploymentを作成
 このDeployment のポッドは、そのコンテナ内でhello-appイメージを実行する

–image
デプロイするコンテナ イメージを指定
 このコマンドによってGoogle Container Registryバケット
 gcr.io/google-samples/hello-app からサンプル イメージがプルされる。
 プルするイメージの特定のバージョンは、:1.0 で指定しているが、バージョンが指定されていない場合は、最新バージョンが使用される。

–port
 コンテナで公開するポートを指定

Deployment を公開する

デプロイしたアプリケーションをインターネットに公開してユーザーがアクセスできるようにする
アプリケーションを公開するには、アプリケーションと外部トラフィックに公開するKubernetesリソースであるServiceを作成する

アプリケーションを公開するには、次の kubectl expose コマンドを実行する

kubectl expose deployment hello-server --type "LoadBalancer"

【オプション】
–type=”LoadBalancer”
 コンテナのCompute Engine ロードバランサを作成
 ※ロードバランサは、Compute Engineのロードバランサ料金に従って課金される

–port
 公開するポートを指定


–targetPort
 Serviceで転送する先のポートを指定
 指定されなかった場合、 port で指定されたポートを利用

アプリケーションの検査と表示

デプロイ、公開したアプリケーションのServiceを検査するには「kubectl get」コマンドを実行する

kubectl get service hello-server

このコマンドの出力で、EXTERNAL IP列に示されているものが、Serviceの外部IPアドレスとなる

http://[EXTERNAL_IP]:8080

注: Serviceの外部IPアドレスが取り込まれるまで数分かかる場合がある。
アプリケーションのIPアドレスがである場合は、もう一度kubectl getを実行。

以上

コメント

タイトルとURLをコピーしました