Kubernetes · 1 min read · Dec 14, 2025
Kubernetesにおける静的ポッド

静的ポッドはkubeletによって直接管理され、APIサーバーはこれらのポッドを制御することはできません。kubeletは各静的ポッドを監視し、クラッシュした場合には再起動する責任があります。ノード上で実行されている静的ポッドはAPIサーバーで確認できますが、APIサーバーによって制御されることはありません。静的ポッドには関連するレプリケーションコントローラーがなく、kubeletサービス自体がそれを監視し、クラッシュした場合には再起動します。静的ポッドにはヘルスチェックはありません。kubeletプロセスは静的ポッド用に指定された特定のディレクトリを監視します。
静的ポッドについて詳しく知りたい場合は、こちらのKubernetesの公式ページをご覧ください。
この記事では、デフォルトの場所に保存されたファイルから静的ポッドを作成する手順を見ていきます。また、デフォルトの場所を他のディレクトリに変更し、そこから静的ポッドを作成する様子も確認します。ワーカーノードで静的ポッドを作成します。
前提条件
- 1つ以上のワーカーノードを持つKubernetesクラスター。 Kubernetesクラスターの作成方法を学びたい場合は、こちらをクリックしてください。このガイドでは、AWSのUbuntu 18.04 EC2インスタンス上に1つのマスターと2つのノードを持つKubernetesクラスターを作成する手助けをします。
何をするか?
- 静的ポッドを作成する
静的ポッドを作成する
マスターノードから以下のコマンドを実行して、クラスター内のノードとポッドの詳細を取得します。
$master kubectl get nodes$master kubectl get pods
ポッドの一部として実行されているコンテナを確認できます。
$worker docker ps$worker docker ps -a次に、ワーカーノードにログインし、静的ポッドのマニフェストのデフォルトパスに以下の内容の新しいファイルを作成します。
$worker vim /etc/kubernetes/manifests/static-web.yamlapiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
role: myrole
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
静的ポッドマニフェストのデフォルトの場所にポッド定義を作成すると、APIサーバーによって制御されないポッドが作成されます。
マスターノードから以下のコマンドを実行して、新しく作成されたポッドを確認できます。
$master kubectl get pods$master kubectl get pods --all-namespaces
ポッドの一部として作成されたコンテナを確認するために、ワーカーノードで以下のコマンドを実行します。
$worker docker ps$worker docker ps -akubeletがマニフェストを読み込むデフォルトの場所を変更することもできます。
静的ポッドのマニフェストを保存する新しいフォルダーを作成します。
ここでは、”/etc/kubelet.d/“を作成します。
$worker mkdir -p /etc/kubelet.d/作成したディレクトリにポッド定義ファイルを作成します。
$worker vim /etc/kubelet.d/static-web.yamlapiVersion: v1
kind: Pod
metadata:
name: static-web-2
labels:
role: myrole
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCPKubeletが静的ポッドのマニフェストを読み込むデフォルトパスを変更するには、/var/lib/kubelet/config.yamlファイルを編集し、”staticPodPath”の値を”staticPodPath=/etc/kubelet.d”に変更します。

設定が完了したら、Kubeletサービスを再起動します。
$worker systemctl restart kubeletサービスが再起動されると、Kubeletは新しい場所を検出し、その場所からマニフェストを読み込み、ポッドを作成します。
ポッドが作成されたかどうかを確認します。
$master kubectl get podsワーカーノードで以下のコマンドを使用して、ポッドの一部として作成されたコンテナを確認します。
$worker docker ps結論
この記事では、静的ポッドを作成する手順と、静的ポッドのマニフェストのデフォルトディレクトリを変更するためにKubeletで必要な設定変更を見てきました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。