2019/07/20時点でのDocker Desktop for Macの最新版が2.0.0.3で付属のk8sはv1.10.11となっており、ECKはv1.11+のため動かない(実際起動出来なかった)ためEdge版で対応した。
1.Edge版のDocker for Macのインストール
こちらからEdge版のをダウンロードし、インストールする。
2.k8sの有効化
ツールバー上のDocker Desktop for Macのアイコンクリックから「Preferences」を選択し、「Kubernetes」タブの「Enable Kubernetes」にチェックを入れ「Apply」をクリックする。
3.メモリ設定
デフォルトだとDockerのメモリサイズが2GBになっていたため「Advanced」タブで増やす。
4.k8sの起動確認
ターミナルから以下のコマンドで起動していることを確認する。
% kubectl get nodes NAME STATUS ROLES AGE VERSION docker-desktop Ready master 56m v1.14.3
5.ECKのOperatorsをk8sに追加
こちらに従ってECKをセットアップする。
% kubectl apply -f https://download.elastic.co/downloads/eck/0.8.1/all-in-one.yaml # 追加後に以下のコマンドで確認すると「elastic-system」が増えている % kubectl get namespaces NAME STATUS AGE default Active 61m docker Active 60m elastic-system Active 55m kube-node-lease Active 61m kube-public Active 61m kube-system Active 61m
6.ECKの設定ファイルを取得
起動して動作確認出来ればいいのでこちらからサンプルを取得する。サンプルの中でLoadBalancerのコメントアウトを外しておいた(とりあえず楽にアクセスするため)
http: service: spec: type: LoadBalancer
7.ECKの起動
以下で起動(個人的にkustomize使っていたのでちゃんと起動するか未確認)
% kubectl apply -f kibana_es.yaml
8.ログインアカウント・パスワードの取得
起動したkibanaにはログインが必要となるので以下で確認しておく。
# 以下の「elasticsearch-sample-elastic-user」がログインアカウントとなる % kubectl get secrets NAME TYPE DATA AGE default-token-cfllc kubernetes.io/service-account-token 3 5m57s elasticsearch-sample-ca Opaque 1 5m56s elasticsearch-sample-ca-private-key Opaque 1 5m56s elasticsearch-sample-elastic-user Opaque 1 5m56s elasticsearch-sample-es-9hf2jntgbk-certs Opaque 3 5m55s elasticsearch-sample-es-9hf2jntgbk-config Opaque 1 5m55s elasticsearch-sample-es-roles-users Opaque 3 5m55s elasticsearch-sample-extrafiles Opaque 1 5m55s elasticsearch-sample-internal-users Opaque 3 5m56s elasticsearch-sample-secure-settings Opaque 0 5m56s kibana-sample-es-ca Opaque 1 5m56s kibana-sample-kibana-user Opaque 1 5m57s # 以下でパスワードを取得 % kubectl get secret elasticsearch-sample-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode # 表示されるパスワードの最後に「%」があれば、それを除いたものがパスワードになる
9.ECKの起動を待つ
% kubectl get pods -o wide --watch NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ... elasticsearch-sample-es-9hf2jntgbk 1/1 Running 0 2m21s 10.1.0.12 docker-desktop <none> <none> kibana-sample-kibana-6fc8dfbb4-8v694 1/1 Running 0 2m27s 10.1.0.11 docker-desktop <none> <none> # 最終的にelasticsearch-*とkibana-*が「1/1 Running」になれば起動完了
10.LBの確認
設定をいじって起動するようにしたLoadBalancerを確認する。
k -n apm get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE elasticsearch-sample-es ClusterIP 10.106.130.44 <none> 9200/TCP 63m elasticsearch-sample-es-discovery ClusterIP None <none> 9300/TCP 63m kibana-sample-kibana LoadBalancer 10.106.71.250 localhost 5601:31636/TCP 63m # EXTERNAL-IPが「localhost」とPORTが「5601」で存在することを確認
11.kibanaへのアクセス
http://localhost:5601でアクセスし、先程確認したログインアカウントでログインする。