0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kindでstatic podを作成する

Posted at

はじめに

static podはkubeletが管理し、ノード上で動作し、APIサーバーから監視されないという特徴を持つpodである。
kindでstatic podの挙動を確認したので、その手順をまとめておく。
https://kubernetes.io/ja/docs/tasks/configure-pod-container/static-pod/

確認環境

Component Version
PC M1 MacBook Pro
Docker Desktop 4.35.1
kind v0.25.0
Kubernetes v1.31.2

Kubernetesクラスタを立ち上げる

まずは動作確認に必要なKubernetesクラスタを構築する。

kind-sandbox.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sandbox
nodes:
- role: control-plane
- role: worker

kindをインストールした状態で以下のコマンドを実行すれば、1,2分くらいでKubernetesクラスタを構築することができる。

kind create cluster --config kind-sandbox.yaml

ワーカーノードのコンテナでシェルを実行する

kindはノードをコンテナとして立ち上げる。
したがって、docker psコマンドを実行すると以下のようにノードがコンテナとして見える。

❯ docker ps                        
CONTAINER ID   IMAGE                  COMMAND                   CREATED          STATUS          PORTS                       NAMES
7e09af403c15   kindest/node:v1.31.2   "/usr/local/bin/entr…"   20 minutes ago   Up 20 minutes                               sandbox-worker
6a69944f5122   kindest/node:v1.31.2   "/usr/local/bin/entr…"   20 minutes ago   Up 20 minutes   127.0.0.1:50086->6443/tcp   sandbox-control-plane

ワーカーノードでbashを実行したい場合は、以下のように実行する。

❯ docker exec -it 7e09af403c15 /bin/bash

static podのmanifestを作成する

kindが作成するkubernetesクラスタのワーカーノードのstaticPodPathは /etc/kubernetes/manifestsである。

root@sandbox-worker:/# grep -i staticpodpath /var/lib/kubelet/config.yaml 
staticPodPath: /etc/kubernetes/manifests

/etc/kubernetes/manifestsにstatic podのmanifestを作成する。

cat <<EOF >/etc/kubernetes/manifest/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP
EOF

作成し終わったら、kubeletサービスを再起動する。

systemctl restart kubelet

static podの確認

kindを実行しているホストでkubectl get podsを実行するとワーカーノード上に先ほど作成したmanifestでstatic podが起動していることがわかる。

❯ kubectl get pods -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP           NODE             NOMINATED NODE   READINESS GATES
static-web-sandbox-worker   1/1     Running   0          20m   10.244.1.2   sandbox-worker   <none>           <none>

最後に

本手順によってkindでstatic podの挙動を作成して、動作確認までできた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?