目次
とある日
Kubernetes(以下、K8sと呼ぶ)を仕事で使いそうなので勉強を始めようと思います。
K8sの勉強を始めるのにあたっての備忘録としての役割が大きい。
K8sを学習しようとするとハンズオンなどチュートリアルを調べると思いますが、
イマイチどれがいいのか、どれが適しているのか、それぞれの違いなどがわからなかったので調べます。
はじめに
前提
K8sの知識はゼロに近いです。
しかしコンテナの知識はそれなりにあると思います。
MySQLの環境をDockerやDocker-composeなどでテスト環境を構築しています。
しかし、K8sは触ったことはない。
本記事
目的
K8sの学習やハンズオンを勧めていく上で情報が多いため整理を行うために作成を行う。
対象
参考書籍
Kubernetes環境の種別
K8sの入門やチュートリアル、ハンズオンを調べると色々と情報が出ます。
K8sのクラスタを利用するには大きく分けると3種類の方法があります。
- ローカルKubernetes
- Kubernetes構築ツール
- マネージドKubernetesサービス
今回は主に解説するのは、ローカルKubernetesです。
理由としては、ほか2つは規模が大きかったり構築が大変だったりお金がかかります。
ローカルKubernetesの解説は本記事の本題なので後述で解説します。
ここでは、Kubernetes構築ツールとマネージドKubernetesサービスについて少しだけ触れます。
Kubernetes構築ツール
構築ツールを使ってK8sの環境をセットアップしていく方法を指します。
Kubeadm
kubeadmは、
kubeadm init
やkubeadm join
などのコマンドを提供するツールで、Kubernetesクラスターを構築する上でのベストプラクティスを反映した「近道」を提供するものとして開発されました。
RANCHER
Why Rancher?
Rancherは、コンテナ技術を採用しているチーム向けのコンテナ管理のプラットフォームです。マルチクラウドとオンプレミス環境にKubernetesクラスターをより簡単に構築および管理できます。
Kubernetesを始めましょう | Rancher Quick Start
マネージドKubernetesサービス
Google Kubernetes Engine(GKE)
Kubernetes を自動でデプロイ、スケーリング、管理できるシンプルな方法です。
Azure Kubernetes Service (AKS)
高可用性で安全なフル マネージド Kubernetes サービス
Amazon Elastic Kubernetes Service (EKS)
Kubernetes のもっとも信頼性の高い実行方法
ローカルKubernetes
手元のマシン上で気軽にK8sを試すことが可能です。
ただ、冗長性は一切担保されていないそうです。
主に3つ存在します。
それぞれの違いについて調べようと思います。
Minikube
Minikubeはローカル環境でKubernetesを簡単に実行するためのツールです。Kubernetesを試したり日々の開発への使用を検討するユーザー向けに、PC上のVM内でシングルノードのKubernetesクラスタを実行することができます。
VirtualBoxを使った例が多いです。
Hello Minikube
Docker Desktop for Windows / Mac
ローカルシステム上の Docker コンテナ内で Kubernetes サーバが稼働します。また、用途はローカルでのテストのみです。Kubernetes サポートを有効化したら、Kubernetes 、 Swarm 、そしてスタンドアロン・コンテナを、それぞれ並列にワークロードをデプロイ可能となります。
Kubernetes 上にデプロイ
Docker Desktopの環境がすでにあるのであれば、設定からK8sを有効にするだけで使用することができます。
kind (K8S in Docker)
kindは、Dockerコンテナの「ノード」を使用してローカルのKubernetesクラスタを実行するためのツールです。 kindは、主にKubernetes自体をテストするために設計されましたが、ローカル開発またはCIに使用される場合があります。
Go言語が必要になるみたいです。
WSL2を導入していると簡単に始められる。
ローカルKubernetesまとめ
項目 | Minikube | Docker Desktop for Windows / Mac | kind (K8S in Docker) |
---|---|---|---|
バージョン選択 | ○ | - | ◎ |
マルチクラスタ | ○ | - | ○ |
マルチノード | - | - | ○ |
機能性 | ◎ | △ | ○ |
シンプルさ | ○ | ◎ | ○ |
確かVirtualBoxとWSL2は同じマシーンに入れるとうまく作動しなかった気がするので、現状構築している環境に応じで選択する法が良いと思います。
仮想環境等の準備を全くしていないのであれば、WSL2を構築してkindをするのほうが自由度は高いと思われます。
〆
クラウドサービスを使えると楽なのですが、そうすると色々と大変なのでローカル環境で行える方法を調べました。