gcloud Shell 環境で Kubernetes を使ってみる

はじめに

本記事では GCP の Kubernetes の簡単な起動方法、使用方法について説明します。

Kubernetes の制御には kubectl のコマンドを使用します。環境は以下のページのように、gcloud Shell環境 をdocker で作成しておくと同じ環境で kubectlのコマンドが使用が可能です。

kubernetes 環境構築

最初にGCPのプロジェクトで Kubernetesのクラスタを作成します。Kubernetesのクラスタとはdockerコンテナを動作させるための、複数のマシンインスタンスのことを指しています。

ここでクラスタを作成、をクリックしてください。

パラメータは特に何かを変更しなくても問題ありませんが、ロケーションタイプは asia-northeast1-a を使うのが良いと思います。(日本なので)

ロケーションタイプを変更したらそのまま作成をクリックして下さい。クラスタの作成には数分かかります。

クラスタの作成が完了すると以下のような画面になります。

この時、Compute Engineでは以下のようにVMインスタンスが自動で3つ作成されていることがわかります。そのため、課金の対象なので、作業が一通り完了したら Kubernetesのクラスタは削除するようにしましょう。

今度は Kubernetesのクラスタ画面から以下のように該当クラスタへの接続メニューをクリックします。

gcloud環境 からアクセスするためのコマンドが表示されるので、赤枠のボタンをクリックしてコピーします。

これを gcloud のシェル環境にコピーします。これで kubectl を触る環境の構築は完了です。特に問題なくコマンドが実行できることを確認してみましょう。

コマンド

kubectl version

kubectl の使い方

というと最近買った本でも数百ページに渡って説明がなされておりましたので、簡単なところだけ。。。

Pod単体/Depyloment/Jobの機能による起動/状態確認/削除コマンドについて記載します。

Pod単体での起動:指定したコンテナを単体で起動します。

Deployment機能:指定したコンテナを複数起動します。何かしらの理由により、コンテナが落ちてしまった場合に、自動的に指定した数までコンテナを起動してくれます。

Job機能:バッチ処理向けにコンテナを起動します。無事、処理が完了したらCompletion状態となりますが、処理に失敗した場合には繰り返し処理を実行しようとします。

Podの単体起動方法

kubectl Podの単体起動のコマンド例はこちらになります。

起動コマンド

kubectl run hello –image=hello-world -it –restart=Never

状態確認コマンド

kubectl get all

kubectl get pods

削除コマンド

kubectl delete pod hello

Deploymentの実行方法

Kubectl の Deploymentを実行するためのコマンド例は以下になります。

起動コマンド

kubectl create deployment hello –image=nginx
kubectl scale –replicas=6 deployment/hello

状態確認コマンド

kubectl get deployment
kubectl get pod

削除コマンド

kubectl delete deployment hello

Jobの実行方法

Kubectl の Jobを実行するためのコマンド例は以下になります。

起動コマンド

kubectl create job hello –image=hello-world

状態確認

kubectl get job
kubectl get pod

削除コマンド

kubectl delete job hello

最後に

少し断片的な情報提供となってしまった感は否めませんが、基本的なKubenertesのコマンドに説明しました。kubernetesへの理解を更に深め、また続きを書いていきたいと思います。

繰り返しになりますが、(いくら無料枠があったとしても)Kubernetesのクラスタ作成にVMインスタンスが3つ起動していますので、作業が終わったら忘れずにクラスタを削除してくださいね!