komeの備忘録

東大理系大学院生の技術ブログ。たまに趣味。

Ubuntu18でKubernetes環境をGKEで構築

f:id:komee:20190930005822p:plain:w300

はじめに

kubernetes(k8s)を簡単に試す環境が欲しくて探していたらGKEを見つけた。GCP上で簡単に使うことができるらしい。リソースはGCP上のものを使用し、ローカルのCLIで操作をする。その環境構築から最初のクラスタ構築までの手順をまとめた。

環境

OS: Ubuntu18.04 Desktop
Google Cloud Platformのユーザ登録は完了済み。(まだの人は以下のリンクから先に登録)

console.cloud.google.com

登録して最初の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環境が構築できる。特にローカルでリソースを用意する必要もなかったので本当に助かった。

参考

qiita.com

Kubernetes完全ガイド (impress top gear)

Kubernetes完全ガイド (impress top gear)