はじめに
kubernetes(k8s)を簡単に試す環境が欲しくて探していたらGKEを見つけた。GCP上で簡単に使うことができるらしい。リソースはGCP上のものを使用し、ローカルのCLIで操作をする。その環境構築から最初のクラスタ構築までの手順をまとめた。
環境
OS: Ubuntu18.04 Desktop
Google Cloud Platformのユーザ登録は完了済み。(まだの人は以下のリンクから先に登録)
登録して最初の12ヶ月は300$の無料枠があり、その期間が終わっても継続して使える。
ローカルでの操作
gcloudのダウンロードスクリプトをダウンロードしてbashにパイプして実行する。
$ sudo apt update $ sudo apt upgrade # パッケージを最新にする $ sudo apt install curl # curlを使えるようにする。インストール済みなら省略 $ curl https://sdk.cloud.google.com | bash # gcloudのインストールスクリプトをカールして実行
初期設定
$ source .zshrc # インストールしたバイナリのパスを記述した適切なrcファイルを読み込む。今回は.zshrc $ gcloud init # 初期設定
実行するとブラウザが立ち上がり、先に登録したユーザでログインすると認証が完了する。
CLIに戻るとどのプロジェクトを読み込むかを聞かれる。適当なプロジェクトを選択するか、新しいプロジェクトを作成する。
追加コンポーネントのインストール
次にローカルでk8sを操作するためにkubectlをインストールする。これもgcloudのコンポーネントとしてインストールができる。
$ gcloud components install kubectl
k8sクラスタの作成
GKEで利用可能なk8sのバージョンを確認して、それに合わせてクラスタを作成する。
$ gcloud container get-server-config --zone asia-northeast1-a # バージョンの確認 . . validMasterVersions: . . validNodeVersions: . . $ gcloud container clusters create k8s --cluster-version 1.14.6-gke.2 --zone asia-northeast1-a --num-nodes 3
- --cluster-version: 先程の出力のvalidMasterVersionsの最新バージョンを指定
- --zone: 日本ならasia-northeast1-aを指定。海外なら最寄りのを指定
- --num-nodes: ノードの数を指定。今回は3とした
k8s Engine APIが指定したプロジェクトで有効になってないとエラーとなる。そんなときは表示されたErrorのURLを辿ってAPIを有効にして、5分ほど待ってから再度実行するとうまくいく。
ローカルでの操作
$ gcloud container clusters get-credentials k8s --zone asia-northeast1-a
GCPの認証情報をフェッチして~/.kube/configに保存してくれる。
以降はkubectコマンドでGKEクラスタを操作することが可能になる。
まとめ
10分ほどで無料k8s環境が構築できる。特にローカルでリソースを用意する必要もなかったので本当に助かった。
参考
Kubernetes完全ガイド (impress top gear)
- 作者: 青山真也
- 出版社/メーカー: インプレス
- 発売日: 2018/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る