Mac でお手軽 Kubernetes クラスタ構築
難しい、となかなか敷居が高くなりがちな Kubernetes だが Docker Desktop for Mac の Kubernetes 機能を利用すると、お手軽に Mac に Kubernetes クラスタを構築することができる。
Docker Desktop for Mac とは?
Mac の Docker 環境の最新版。少し前までは Docker Toolbox が使用されていたが、現在では Docker Desktop for Mac がスタンダードになっている。18.06 から Kubernetes 機能も搭載された。
インストール
Docker.dmg をダウンロードしてインストールする。 https://hub.docker.com/editions/community/docker-ce-desktop-mac
Kubernetes 機能の有効化
Preferences から Kubernetes タブに進んで、「Enable Kubernetes」にチェックを入れるとバックグラウンドで Kubernetes が動き出す。
Kubernetes Dashboard の有効化
以下のドキュメント通りに kubectl create
と kubectl proxy
を打った後、指定の localhost:8001 の URL をブラウザで開く。
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
Kubernetes Dashboard のアクセス
Dashboard のアクセスには認証が必要になる。ネームスペース kube-system で起動している deployment-controller のトークンを利用してアクセスする。
$ kubectl -n kube-system get secret | grep deployment-controller | awk '{print $1}' | xargs -I{} kubectl describe secret {} -n kube-system | grep ^token | awk '{print $2}'
go の docker イメージや拙作の rod(統合 REPL 環境)を動かす
$ kubectl run golang --image=golang:1.11.5-stretch --command -- tail -f /dev/null deployment.apps "golang" created $ kubectl run rod --image=kyagi/rod --command -- tail -f /dev/null deployment.apps "rod" created $ kubectl get deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE golang 1 1 1 1 19s rod 1 1 1 1 2m ubuntu 1 1 1 1 5d
まとめ
Docker Desktop for Mac を開発で利用しているのであれば、せっかく追加された Kubernetes 機能を使わないのはもったいない。難しいと思われがちな(実際、自前で構築するのは難しい) Kubernetes クラスタをお手軽に構築できるので「Kubernetes ってこんな感じなんだ」とまずは感触をつかみたい方にもオススメの方法と言える。いったん構築してしまえば kubectl や Dashboard から「作って壊す」のはもちろん、いろいろな操作ができる。Docker 単体や Docker compose を使って開発環境を構築するよりも効率的なことも多い はず。(^_^)
※個人的には imagePullPolicy
を Always
から IfNotPresent
にすることで docker build したイメージを dockerhub に push する手間がなくなり、修正&確認のサイクルが回しやすくなるのがありがたい。イメージを修正した場合は build した後に、単にその pod を削除して自動再生された pod で確認すればよい。( ・ㅂ・)و ̑̑