概要
GKE (Google Kubernetes Engine) は Google Cloud Platform 上で kubernetes 環境を構築することができるサービスです
過去に GCE というサービスを試しましたがそれが進化して GKE になりました
今回は公式のチュートリアルを試してみました
作業は GUI からではなくすべてコマンドで行います
なおこの作業は有料になるのでご注意ください
環境
- Google Kubernetes Engine (2018/08/22 時点)
- Google Cloud Shell (2018/08/22 時点)
- Chrome 68.0.3440.106
事前準備
- Google アカウントの取得
- Google Cloud Platform でプロジェクトの作成
- 作成したプロジェクトに支払い (クレカ) 情報を紐付ける
は事前に実施しておきましょう
GKE は有料のサービスになるのでプロジェクトに支払い情報がなければいけません
Google Cloud Shell を準備する
gcloud コマンドと kubectl コマンドを使います
ローカルにインストールしても OK ですがブラウザ情報でコマンドを実行することができる「Google Cloud Shell」を今回は使います
新しく Google Cloud Platform のダッシュボード画面を開きます
そして右上の「Active Cloud Shell」を選択すれば OK です
接続までに少し時間がかかるので完了するまで待ちましょう
gcloud コマンドの設定をする
使用するプロジェクトなどを指定します
- プロジェクトの指定
gcloud config set project [project_id]
プロジェクトの設定の確認は gcloud config list
で確認できます
Google Cloud Shell を使っていればすでにプロジェクトは作成されていると思います
- デフォルトリージョンを設定
gcloud config set compute/zone asia-south1-b
設定可能なゾーンの一覧は gcloud compute zones list
で確認できます
今回は asia-south1-b
にしましたがお好きなところをお選びください
クラスタの作成
ではここからが本題になります
まずはクラスタを作成しましょう
gcloud container clusters create cluster1
cluster1 という名前のクラスタを作成しています
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
cluster1 asia-south1-b 1.9.7-gke.5 35.200.224.251 n1-standard-1 1.9.7-gke.5 3 RUNNING
クラスタ作成されると自動的にコンテナ用のノードも追加されるようです
NUM_NODES
が 3 になっていますが 3 台いきなり作成されるようです
ちなみに GUI で確認すると以下のような感じでした
- gcloud container clusters list
でも確認できます
この時点ですでにお金が発生しているので注意してください
クラスタの認証情報を取得
gcloud container clusters get-credentials cluster1
これでクラスタに対して kubectrl コマンドアクセスできるようになります
このあとアプリのデプロイをするのに使います
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster1.
.kube/config
にファイルとして保存されています
サンプルアプリをデプロイする
hello-app というサンプルアプリがあるのでこれをデプロイします
Deployment を作成する
まずはアプリをデプロイします
デプロイしただけではアプリにアクセスすることができません
kubectl run hello-server --image gcr.io/google-samples/hello-app:1.0 --port 8080
イメージはすでに用意してあるサンプルを使用します
deployment "hello-server" created
この情報は GUI 上の「ワークロード」でも確認することができます
- kubectl get deploy
でも確認できます
デプロイしたアプリを公開する
先程デプロイしたアプリをロードバランサにぶら下げて公開します
kubectl expose deployment hello-server --type "LoadBalancer"
service "hello-server" exposed
これでデプロイしたアプリにアクセスすることができます
動作確認
kubectl get service hello-server
でアクセスする IP を確認できます
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-server LoadBalancer 10.51.240.23 35.200.200.238 8080:31668/TCP 6m
上記の場合であれば http://35.200.200.238:8080
にアクセスすればアプリを確認することができると思います
Hello, world!
Version: 1.0.0
Hostname: hello-server-579859fb5b-sttzx
上記のようなテキストが記載された画面が表示されると思います
これでチュートリアルは終了です
お掃除
このままだとお金が発生し続けてしまうのでリソースを削除しましょう
- kubectl delete service hello-server
gcloud container clusters delete cluster1
Deployment は削除しないでもクラスタを削除できます
クラスタを削除するときは確認の旨が聞かれるので「y」を選択しましょう
これでリソースが削除されます
最後に
Google Kubernetes Engine のチュートリアルを試してみました
画面でポチポチするよりも Google Cloud Shell を使ったほうが簡単にできると思います
チュートリアル自体はかなり簡単な内容なので特に躓く点はないかなと思います
またこれをベースに istio のチュートリアルを行うことも可能です
クラスタ内に生成されるインスタンスが n1-standard-1
というサイズのインスタンスで 3 台作成されたのですが GCE には更に格安な f1-micro
というインスタンスがあります
今回は試してないですが、もしこれでクラスタを構築できるならこれの方が安く済むと思います
ちなみに今回のチュートリアルでかかった料金は $0.1 でした (請求金額が翌日にならないとわかりません)
0 件のコメント:
コメントを投稿