# Minikubeを使ったクラスターの作成

> Kubernetesクラスターとは何かを学ぶ。
> Minikubeとは何かを学ぶ。
> Kubernetesクラスターを起動する。

---

LLMS index: [llms.txt](/llms.txt)

---

<!DOCTYPE html>

<html lang="ja">

<body>

<div class="layout" id="top">

    <main class="content">

        <div class="row">

      <div class="col-md-8">
          <h3>目標</h3>
                <ul>
                    <li>Kubernetesクラスターとは何かを学ぶ</li>
                    <li>Minikubeとは何かを学ぶ</li>
                    <li>Kubernetesクラスターをローカルで動かす</li>
                </ul>
            </div>

            <div class="col-md-8">
                <h3>Kubernetesクラスター</h3>
                <p>
                <b>Kubernetesは、単一のユニットとして機能するように接続された、可用性の高いコンピューターのクラスターをまとめあげます。</b>Kubernetesの抽象化により、コンテナ化されたアプリケーションを個々のマシンに特に結び付けることなくクラスターにデプロイできます。この新しいデプロイモデルを利用するには、アプリケーションを個々のホストから切り離す方法でアプリケーションをパッケージ化(つまり、コンテナ化)する必要があります。コンテナ化されたアプリケーションは、アプリケーションがホストに深く統合されたパッケージとして特定のマシンに直接インストールされていた従来のデプロイモデルよりも柔軟で、より迅速に利用可能です。<b>Kubernetesはより効率的な方法で、クラスター全体のアプリケーションコンテナの配布とスケジューリングを自動化します。</b>Kubernetesはオープンソースのプラットフォームであり、プロダクションレディです。
                </p>
                <p>Kubernetesクラスターは以下の2種類のリソースで構成されています:
                    <ul>
                        <li><b>コントロールプレーン</b>がクラスターを管理する</li>
                        <li><b>ノード</b>がアプリケーションを動かすワーカーとなる</li>
                    </ul>
                </p>
            </div>

            <div class="col-md-4">
                <div class="content__box content__box_lined">
                    <h3>まとめ:</h3>
                    <ul>
                        <li>Kubernetesクラスター</li>
                        <li>Minikube</li>
                    </ul>
                </div>
                <div class="content__box content__box_fill">
                    <p><i>
                        Kubernetesは、コンピュータークラスター内およびコンピュータークラスター間でのアプリケーションコンテナの配置(スケジューリング)および実行を調整する、プロダクショングレードのオープンソースプラットフォームです。
                    </i></p>
                </div>
            </div>
        </div>
        <br>

        <div class="row">
            <div class="col-md-8">
                <h2 style="color: #3771e3;">クラスターダイアグラム</h2>
            </div>
        </div>

        <div class="row">
            <div class="col-md-8">
                <p><img src="/docs/tutorials/kubernetes-basics/public/images/module_01_cluster.svg"></p>
            </div>
        </div>
        <br>

        <div class="row">
            <div class="col-md-8">
                <p><b>コントロールプレーンはクラスターの管理を担当します。</b>コントロールプレーンは、アプリケーションのスケジューリング、望ましい状態の維持、アプリケーションのスケーリング、新しい更新のロールアウトなど、クラスター内のすべての動作をまとめあげます。</p>
                <p><b>ノードは、Kubernetesクラスターのワーカーマシンとして機能するVMまたは物理マシンです。</b>各ノードにはKubeletがあり、これはノードを管理し、Kubernetesコントロールプレーンと通信するためのエージェントです。ノードには<a class='glossary-tooltip' title='シンプルさ、堅牢性、移植性を重視したコンテナランタイムです。' data-bs-toggle='tooltip' data-bs-placement='top' href='https://containerd.io/docs/' target='_blank' aria-label='containerd'>containerd</a> や <a class='glossary-tooltip' title='Kubernetesに特化した軽量コンテナランタイム' data-bs-toggle='tooltip' data-bs-placement='top' href='https://cri-o.io/#what-is-cri-o' target='_blank' aria-label='CRI-O'>CRI-O</a> などのコンテナ操作を処理するためのツールもあるはずです。プロダクションのトラフィックを処理するKubernetesクラスターには、最低3つのノードが必要です。これは、1ノードがダウンすると、<a href="/ja/docs/concepts/architecture/#etcd">etcd</a> メンバーとコントロールプレーンのインスタンスの両方を同時に失うリスクがあり、冗長性が損なわれてしまうからです。このリスクを軽減するには、コントロールプレーンノードを複数構成することで対応できます。</p>
            </div>

            <div class="col-md-4">
                <div class="content__box content__box_fill">
                    <p><i>コントロールプレーンは実行中のアプリケーションをホストするために使用されるノードとクラスターを管理します。</i></p>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-md-8">
                <p>Kubernetesにアプリケーションをデプロイするときは、コントロールプレーンにアプリケーションコンテナを起動するように指示します。コントロールプレーンはコンテナがクラスターのノードで実行されるようにスケジュールします。<b>ノードは、コントロールプレーンが公開している<a href="/ja/docs/concepts/overview/kubernetes-api/">Kubernetes API</a>を使用してコントロールプレーンと通信します。</b>エンドユーザーは、Kubernetes APIを直接使用して対話することもできます。</p>

                <p>Kubernetesクラスターは、物理マシンまたは仮想マシンのどちらにも配置できます。Kubernetes開発を始めるためにMinikubeを使うことができます。Minikubeは、ローカルマシン上にVMを作成し、1つのノードのみを含む単純なクラスターをデプロイする軽量なKubernetes実装です。Minikubeは、Linux、macOS、およびWindowsシステムで利用可能です。Minikube CLIは、起動、停止、ステータス、削除など、クラスターを操作するための基本的なブートストラップ操作を提供します。</p>

                <p>Kubernetesが何であるかがわかったので、<a href="/ja/docs/tutorials/hello-minikube/">Hello Minikube</a> に行き、最初のクラスターを動かしましょう！</p>

            </div>
        </div>

    </main>

</div>

</body>
</html>
