Kubernetesの演習環境をVagrantでさくっと構築!

※当ブログではアフィリエイト広告を利用しています

前回紹介した「k3s」ですが、あまりに手軽にインストール・環境構築できるため割と気に入っています。

まだ出たところなので本番用としては使えませんが、、、Kubernetesで使われるリソースを理解したり、kubectlのコマンドの練習にはちょうど良いと思っています。

そこで、今回はそんなk3sをいつでもすぐに使えるようにVagrantですぐにインストールするためのVagrantfileを作ったので、その紹介をしたいと思います。

k3sではなく、ちゃんとしたKubernetes(k8s)を導入したい方は、以下を参照してください。

前提

以下のツールが導入されていることを確認してください。ない場合は各リンクから導入するか、こちらの手順を参考にしてk3sを導入してください。

導入

以下をコマンドラインから実行して環境を構築します。これで3台のクラスターが立ち上がります。


git clone https://github.com/k8sinfo/k3s-vagrant.git && cd k3s-vagrant && vagrant up && vagrant ssh master

初回導入時はGuest Additionsのインストールが走るので少し時間がかかるかもしれません。

インストールは以上です。お疲れさまでした。

ホストPCのリソースが少ない場合・・・

前の手順ではメモリ1GBのVMが3台立ち上がります。でも、メモリ4GBのPCだと少しきついですよね。

その場合は、以下のコマンドで導入してください。こちらは1GBのVM1台だけ入っているものになります。


git clone https://github.com/k8sinfo/k3s-vagrant.git && cd k3s-vagrant && vagrant up && vagrant ssh

動作確認

一応、動作しているか確認しておきましょう。


[vagrant@localhost ~]$ kubectl get node
NAME                    STATUS   ROLES    AGE   VERSION
localhost.localdomain   Ready    none   36s   v1.13.3-k3s.6

[vagrant@localhost ~]$ kubectl get pod -n kube-system
NAME                             READY   STATUS              RESTARTS   AGE
coredns-7748f7f6df-c6kkc         1/1     Running             0          34s
helm-install-traefik-xfj44       0/1     Completed           0          34s
svclb-traefik-5757cdf7cf-886z5   0/2     ContainerCreating   0          2s
traefik-dcd66ffd7-4gghc          0/1     ContainerCreating   0          2s

[vagrant@localhost ~]$ kubectl get ns
NAME          STATUS   AGE
default       Active   111s
kube-public   Active   111s
kube-system   Active   111s

Traefikというのが見慣れなかったので、一応調べました。

https://docs.traefik.io/


Traefik is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components (DockerSwarm modeKubernetesMarathonConsulEtcdRancherAmazon ECS, …) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the onlyconfiguration step you need.

https://docs.traefik.io/

「Traefikは、マイクロサービスの展開を容易にするモダンなHTTPリバースプロキシーおよびロードバランサーです」ということなので、Ingress Controllerに相当する部分を担っているようです。

公式のイメージ図がまんまIngressのそれでした。

Traefik公式(https://docs.traefik.io/img/architecture.png)より引用

発音は[træfɪk] で、英語のTrafficのように発音するようです。

最初からクラウドネイティブな環境向けに開発されたように見えますし、k3sに採用されていることからもおそらく軽量なんだと思います。今後検証していければと思います。

まとめ

若干話がそれましたが、k3sの導入はすごく簡単だったと思います。

今回使用したソースは以下に格納しました。

https://github.com/k8sinfo/k3s-vagrant