なんの話?
以前書きましたが、EKSクラスタの構築は非常にめんどうです。
https://cloudpack.media/41358
Rancherの2系はEKSのデプロイもサポートしています。が、リリース当初はぜん
先日リリースされたv2.0.3でちゃんとデプロイできるようになりました。
https://qiita.com/cyberblack28/items/d444015edd99cab1ba43
Rancherを使えば、よく分からないEKS用kubectlやHeptio Authenticator AWSといったもののセットアップも不要、ノード登録のためのConfigMapなんかも不要で、かなり簡単にEKSクラスタをつくることができます。
Rancherを使う場合、Rancherサーバ用インスタンスが必要になるよねーって話になるんですが、自分のMac上のDocker for MacにRancherサーバのコンテナをデプロイすればインスタンスいらないのでは? という話です。
手順
Docker for Mac がインストールされたMacで普通にRancher立ち上げます。
$ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5080491358e1 rancher/rancher "rancher --http-list…" 24 seconds ago Up 23 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443 /tcp stupefied_bhabha
起動しました。
ブラウザでhttps://localhostにアクセスします。
見れました。
ログインします。
Server URL がlocalhostでいいのか? ホストがアクセスできないんじゃないの? って言われますけど、そのまま進みます。
EC2でクラスタつくる場合は、EC2からRancherのServer URLにアクセスできないといけなかったような気がしましたが、EKSはAPI叩ければそれでいいような気がします。
あとは、ここ の手順通りEKSをセットアップします。
問題なくできました。
この環境だとkubeconfigはこんな感じです。
apiVersion: v1 kind: Config clusters: - name: "eks-1" cluster: server: "https://localhost/k8s/clusters/c-pjgr6" api-version: v1 certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM3akNDQ\ (略)
serverがlocalhostなので、kubectlはローカルのRancherにアクセスすることになります。
$ kubectl get all NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 10m $ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-152-186.us-west-2.compute.internal Ready <none> 4m v1.10.3 ip-192-168-212-16.us-west-2.compute.internal Ready <none> 4m v1.10.3 ip-192-168-66-200.us-west-2.compute.internal Ready <none> 4m v1.10.3
$ kubectl run nginx --image=nginx --port=80 deployment.apps "nginx" created $ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-768979984b-6jqv4 1/1 Running 0 49s $ kubectl expose deployment nginx --type="LoadBalancer" service "nginx" exposed $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 14m nginx LoadBalancer 10.100.19.166 aeb2a89ff7916... 80:31789/TCP 1m
いまのところ問題なく使えてます。
まとめ
EKSはRancherでつくるのが楽だよ
Docker for MacでRancherつくれはRancher用インスタンスはいらないよ
って話でした。
(この構成問題あるよとか情報あれば教えてください)