# Static Pod

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

---

_Static Pod_ は、<a class='glossary-tooltip' title='Kubernetes APIを提供するコントロールプレーンのコンポーネントです。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/architecture/#kube-apiserver' target='_blank' aria-label='APIサーバー'>APIサーバー</a>による監視を受けることなく、特定のノード上のkubeletデーモンによって直接管理されます。
コントロールプレーンによって管理されるPod(たとえば<a class='glossary-tooltip' title='クラスター上の複製されたアプリケーションを管理します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/workloads/controllers/deployment/' target='_blank' aria-label='Deployment'>Deployment</a>)とは異なり、kubeletが各Static Podを監視し、障害が発生した場合には再起動します。

Static Podは、常に特定のノード上の1つの<a class='glossary-tooltip' title='クラスター内の各ノードで実行されるエージェント。コンテナがPod内で実行されていることを保証します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/reference/command-line-tools-reference/kubelet' target='_blank' aria-label='kubelet'>kubelet</a>に紐付けられます。

Static Podの主な用途は、セルフホスト型のコントロールプレーンを実行することです。
言い換えると、kubeletを使用して個々の[コントロールプレーンコンポーネント](/docs/concepts/overview/components/#control-plane-components)を管理することです。
たとえば、[kubeadm](/docs/reference/setup-tools/kubeadm/)はStatic Podを使用して、コントロールプレーンのノード上で`kube-apiserver`、`kube-controller-manager`、`kube-scheduler`、`etcd`を実行します。


<div class="alert alert-info" role="note"><h4 class="alert-heading">備考:</h4>もしクラスターがコントロールプレーンコンポーネントをPodとして実行している場合、それらはおそらくStatic Podです。
これらのミラーPodは、<code>kube-system</code>名前空間内で<code>kubernetes.io/config.mirror</code>アノテーションによって識別できます。</div>


## ミラーPod {#mirror-pods}

kubeletは、各Static Podに対応する<a class='glossary-tooltip' title='kubelet上のstatic Podを追跡するAPIサーバー内のオブジェクトです。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/reference/glossary/?all=true#term-mirror-pod' target='_blank' aria-label='ミラーPod'>ミラーPod</a>を、Kubernetes APIサーバー上に自動的に作成しようとします。
これにより、ノード上で実行されているPodはAPIサーバー上で参照できるようになりますが、APIサーバーから制御することはできません。
Pod名には、先頭にハイフンを付けたノードのホスト名がサフィックスとして付加されます。

kubeletは、Static Podから<a class='glossary-tooltip' title='ユーザーにとって意味があり関連性のある識別属性を、オブジェクトにタグ付けするものです。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/overview/working-with-objects/labels' target='_blank' aria-label='ラベル'>ラベル</a>をミラーPodへ伝播します。
これらのラベルは、<a class='glossary-tooltip' title='セレクターを利用すると、ユーザーはラベルに基づいてリソースのリストをフィルタリングできます。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/overview/working-with-objects/labels/' target='_blank' aria-label='セレクター'>セレクター</a>を通じて通常どおり使用できます。

`kubectl`を使用してAPIサーバーからミラーPodを削除しようとしても、kubeletはStatic Podを削除 _しません_。
kubeletはミラーPodを再作成します。

## 制限事項 {#limitations}

Static Podのspecは、<a class='glossary-tooltip' title='Pod内で動作するプロセスのアイデンティティを提供します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/tasks/configure-pod-container/configure-service-account/' target='_blank' aria-label='ServiceAccount'>ServiceAccount</a>、<a class='glossary-tooltip' title='機密性のないデータをキーと値のペアで保存するために使用されるAPIオブジェクトです。環境変数、コマンドライン引数、またはボリューム内の設定ファイルとして使用できます。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/configuration/configmap/' target='_blank' aria-label='ConfigMap'>ConfigMap</a>、<a class='glossary-tooltip' title='パスワードやOAuthトークン、SSHキーのような機密の情報を保持します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/configuration/secret/' target='_blank' aria-label='Secret'>Secret</a>などの他のAPIオブジェクトを参照できません。

Static Podは、[エフェメラルコンテナ](/docs/concepts/workloads/pods/ephemeral-containers/)をサポートしていません。

## Static PodとDaemonSetの比較 {#static-pods-vs-daemonsets}

<!-- Source: tasks/configure-pod-container/static-pod/ -->
クラスター化されたKubernetesを実行していて、すべてのノードでPodを実行するためにStatic Podを使用している場合は、代わりに<a class='glossary-tooltip' title='Podのコピーがクラスター内の一連のNodeに渡って実行されることを保証します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/workloads/controllers/daemonset' target='_blank' aria-label='DaemonSet'>DaemonSet</a>を使用するべきでしょう。

Static Podはコントロールプレーンによって管理されないため、Kubernetesの標準的な仕組みを使用してロールアウト、ロールバック、スケールを行うことはできません。
DaemonSetはこれらの機能を提供しており、ノードレベルのワークロードを実行するための推奨される方法です。

Static Podは、APIサーバーが利用可能になる前にkubeletによって起動されるため、コントロールプレーンコンポーネントのブートストラップに適しています。
DaemonSetは、稼働中のコントロールプレーンを必要とします。

## 次の項目

- [Static Podを作成する](/docs/tasks/configure-pod-container/static-pod/)方法について学ぶ。
- [Kubernetesのコンポーネント](/docs/concepts/overview/components/)と、コントロールプレーンがStatic Podをどのように使用するかについて学ぶ。
- Static Podの代替手段である[DaemonSet](/docs/concepts/workloads/controllers/daemonset/)について学ぶ。
