LinuCエヴァンジェリストの鯨井貴博@opensourcetechです。
今回は、kubernetesクラスタ環境の構築/利用方法に関するメモです。
いろいろな方法があるのはなんとなく分かっていたのですが、
思った以上に多かったので整理の為に簡単ですがまとめてみました。
完成後のコンポーネントの概要
こんな感じですw
https://kubernetes.io/ja/docs/concepts/overview/components/
ざっくりですが、
"kubectl(操作コマンド) ⇒ Control-Plane(環境管理) ⇒ Node(コンテナが起動する場所)" となります。
学習/検証用途などで試しに作ってみようという場合は、
全てを1台、もしくはControl-PlaneとNodeそれぞれ1台という構成で構築します。
商用環境で使用するなどの場合は、
Control-Plan・Nodeをそれぞれ複数台の冗長構成とし、コンテナが停止する障害が発生した際に別の健全なNodeで起動するなどに対応できるようにします。
なお、kube-apiserver/etcd/kube-scheduler/kube-controller-managerなど各コンポーネントに関する詳しい紹介は割愛します。
確認したい方は、
こちらでどうぞ。
1.商用環境向けのしっかりとした構成
必要なマシン台数が多くなるので用意するのが大変だったり、どのマシンで何をするか間違えないようにしなければいけませんが、理解を深めるには一番いいかなと思います。
https://kubernetes.io/docs/setup/
https://kubernetes.io/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
2.Docker Desktop with Kubernetes
WindowsやMac OSなどクライアントOSが入っている環境上に簡単に構築できるのが、特徴です。
学習や検証用途での利用となります。
https://docs.docker.jp/docker-for-mac/index.html#kubernetes
3.minikube
こちらも学習用。
https://minikube.sigs.k8s.io/docs/start/
ハイスペックを必要としない優しい構成ですね。
-CPU:2以上
-メモリー:2GB
-ディスクスペース:20GB
-インターネット接続
-コンテナや仮想マシンマネージャー(Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMWare)
4.MicroK8s
"Micro"とある通り、こちらも学習用。
Edge/IoT向けから一般のx86マシンでも動かせるKubernetes。
学習用としても使えます。
https://microk8s.io/
5.K3s
"Lightweight"というのが示す通り軽量、こちらも学習用。
Edge/IoT向けから一般のx86マシンでも動かせるKubernetes。
学習用としても使えます。
https://k3s.io/
6.K0s
こちらも学習用。
Edge/IoT向けから一般のx86マシンでも動かせるKubernetes。
学習用としても使えます。
https://docs.k0sproject.io/v1.21.2+k0s.1/install/
7.kind
こちらも学習用。
Dockerコンテナ上にKubernetesを構築するというものです。
https://kind.sigs.k8s.io/docs/user/quick-start/
クラウドサービス1.Google Kubernetes Engine(GKE)
GCP上のKubernetesサービスですね。
https://cloud.google.com/kubernetes-engine?hl=ja
クラウドサービス2.Amazon Elastic Kubernetes Service(Amazon EKS)
Amazon AWSのKubernetesサービスです。
https://aws.amazon.com/jp/eks/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&eks-blogs.sort-by=item.additionalFields.createdDate&eks-blogs.sort-order=desc
クラウドサービス3.Azure Kubernetes Service(AKS)
Microsoft Azure上のKubernetesサービスです。
https://azure.microsoft.com/ja-jp/services/kubernetes-service/
クラウドサービス4.その他
IBM CloudのKubernetesサービス。
https://www.ibm.com/jp-ja/cloud/kubernetes-service
Oracle CloudのKubernetesサービス。
https://www.oracle.com/jp/cloud-native/container-engine-kubernetes/
Alibaba CloudのKubernetesサービス。
https://www.alibabacloud.com/ja/product/kubernetes
番外編.katacoda
オライリーさんが用意してくれている(少し前に買収した)、学習環境です。
kubernetes以外のコース(Linuxなど)も用意されていたり、自分でコースを作成したりできるプラットフォームで非常に便利です。
https://www.katacoda.com/courses/kubernetes
おわりに
今回はここまでとなりますが、
おそらく上記以外にもたくさんの構築/利用方法があると思います。
環境構築から実施する場合、コンテナのデプロイなどが出来ればいい場合など目的に合わせて、
どれを使うかでよいのかなというのが感想です。
また、kubernetes環境のコンテナをどのようの構成するかという"デザインパターン"や、
"よりセキュアに利用するためのコツ"などについては、別途理解する必要があると思います。
では!