概要
チュートリアルに記載されていることを自分なりの解釈で書いていこうと思います。
少しでも参考になれば幸いです。
※認識誤り等ありましたら、ご指摘いただけると助かります。
チュートリアルで学べること
- コンテナ化されたアプリケーションをクラスターにデプロイ
- Deploymentのスケーリング
- 新しいソフトウェアのバージョンでコンテナ化されたアプリケーションをアップデート
- コンテナ化されたアプリケーションのデバッグ
Minikubeを使ったクラスターの作成
以下が目標です。
- Kubernetesクラスターとは何かを学ぶ
- Minikubeとは何かを学ぶ
- Kubernetesクラスターを、オンラインのターミナルを使って動かす
Kubernetesクラスターとは?
Kubernetesは、単一のユニットとして機能するように接続された、
可用性の高いコンピュータのクラスターをまとめあげます。
コンピュータをまとめ上げるものだと理解。
Kubernetesの抽象化により、コンテナ化されたアプリケーションを
個々のマシンに特に結び付けることなくクラスターにデプロイできます。
コンテナをクラスター内にデプロイできると理解。
この新しいデプロイモデルを利用するには、
アプリケーションを個々のホストから切り離す方法でアプリケーションを
パッケージ化(つまり、コンテナ化)する必要があります。
アプリケーションをコンテナ化して、クラスター内にデプロイするということだと理解。
コンテナ化されたアプリケーションは、アプリケーションがホストに深く統合されたパッケージとして特定のマシンに直接インストールされていた従来のデプロイモデルよりも柔軟で、より迅速に利用可能です。
ふむふむ。
Kubernetesはより効率的な方法で、クラスター全体のアプリケーションコンテナの配布とスケジューリングを自動化します。
ありがとうございます。
Kubernetesクラスター構成
- マスターがクラスターを管理する
- ノードがアプリケーションを動かすワーカーとなる
※以下URLより抜粋
https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
マスターはクラスターの管理を担当します。マスターは、アプリケーションのスケジューリング、望ましい状態の維持、アプリケーションのスケーリング、新しい更新のロールアウトなど、クラスター内のすべての動作をまとめあげます。
まとめると
- マスター
→クラスターの管理(クラスター内のすべての動作をまとめあげる)
→アプリケーションのスケジューリング
→望ましい状態の維持
→アプリケーションのスケーリング
→新しい更新のロールアウト
などなど
ノードは、Kubernetesクラスターのワーカーマシンとして機能するVMまたは物理マシンです。
ノードは、Virtual Machine or 物理マシン。
各ノードにはKubeletがあり、これはノードを管理し、Kubernetesマスターと通信するためのエージェントです。
kubeletは、ノード管理、Kubernetesマスターと通信するためのエージェント。
Kubernetesにアプリケーションをデプロイするときは、マスターにアプリケーションコンテナを起動するように指示します。マスターはコンテナがクラスターのノードで実行されるようにスケジュールします。ノードは、マスターが公開しているKubernetes APIを使用してマスターと通信します。エンドユーザーは、Kubernetes APIを直接使用して対話することもできます。
まとめると、
1.Kubernetesマスタにアプリケーションコンテナ起動指示を出す
2.Kubernetesマスタがコンテナがクラスターのノードで実行されるようにスケジューリングする
3.ノードが、Kubernetesマスタが公開しているAPIを使用して、疎通を取りに行く。
Minikubeとは?
ローカルマシン上にVMを作成し、1つのノードのみを含む単純なクラスターをデプロイする軽量なKubernetes実装です。
自身のPCでKubernetesを使うのであれば、Minikubeを使用する流れになるということですね。
Minikubeは、Linux、macOS、およびWindowsシステムで利用可能です。Minikube CLIは、起動、停止、ステータス、削除など、クラスターを操作するための基本的なブートストラップ操作を提供します。
なるほど。
対話型チュートリアル - クラスターの作成
用意されているコマンドをローカル環境で実行していきます。
※すでにMinikubeのインストールが完了していること前提です。
※そのまま対話側チュートリアルを進めていただいても問題ありません。
# minikubeバージョン確認
minikube version
→バージョン情報が出力されること
# minikube起動
minikube start
# kubectlのバージョン確認
kubectl version
# クラスター情報確認
kubectl cluster-info
# ノード情報確認
kubectl get nodes
まとめ
対話型チュートリアルはここまでです。
次回、「kubectlを使ったDeploymentの作成」を見ていきます。
