Kubernetesを触ってみたいけど、k8sの環境はGKEなどのパブリッククラウドなどを利用しないといけないから、なかなか触ってないという方もいるかと思います。今回は、 家や安いVPSとかでもKubernetesの環境を作って学習したいという方向けに情報をまとめたいと思います。

Kubernetesの勉強するためにクラウド料金払いたくない

パブリッククラウド上にあるKubernetesのサービスを利用すると従量課金だったり、最低ノード数を3つ必要としているなどで、意外と従量課金の料金がかかってしまったという経験がある方もいるかと思います。開発環境などで利用するクラウド料金は、かからないほうがいいので、オンプレで試せる環境を作る方法について簡単にまとめて行きます。

kubeadmとは

普段、k8sのホスティングサービスを利用している方は、馴染みがないと思いますが、「kubeadm」というものがあります。kubeadmはKubernetes本家のSIGクラスタライフサイクルのプロジェクトです。目指しているところは、標準的なKubernetesクラスタのセットアップと管理をするツールです。2018年、バージョン1.13のころにGAになって、そこから先はプロダクションレディですよみたいな言い方がされています。

実は、このツールをうまく使いこなすだけでほとんど構築できます。

セットアップ手順について

k8sをセットアップするときの手順について、簡単に紹介します

  • 物理ノードを準備する。
  • コンテナランタイムを物理ノードにインストールする。
  • 物理ノード間の通信(CNIの設定)ができるようにする。
  • kubelet、kubectl、kubeadmをインストールする。
  • kubectlをサービスとして登録する
  • kubeadmを使ってクラスタを作る
  • CNIプラグインをインストールする。
  • ワークノードをクラスタ(kubeadm join)へ登録する。

Linuxサーバをセットアップしたことがある方なら、意外とマニュアルをみながら簡単にセットアップすることができると思います。ただ、マニュアルは、全体をざっと読んでからセットアップしたほうがいいです^^;

まとめ

簡単ですが、kubeadmを使って簡単に標準的なkubernetesの環境を導入する方法を紹介しました。意外と簡単に実験できるので、クラウドのコストがかかると思って、手をだしていなかった方も触ってみてはいかがでしょうか。