1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Kubernetes]Static Podの作成方法を確認する

Last updated at Posted at 2020-08-02

はじめに

Podはkube-apiserverで管理されています。Static Podは特殊なPodで、kube-apiserverではなく、kubeletが直接管理するPodです。etcdやkube-apiserverなどがStatic Podとしてデプロイされています。

Static Podをユーザ環境に合わせて追加することはあまりないかも知れませんが、今回はStatic Podの作成方法を確認しましたのでまとめました。
なお、Static Podは今後廃止される可能性があるとのことです。

Static Podの作成

Static PodはMasterノードだけでなくworkerノードにも作ることができます。
今回はworkerノードに作成してみたいと思います。Masterノードに作る場合も同じです。

環境の確認

まずはkubeleteの設定情報を確認します。確認しなくてもデフォルトのままだとは思いますが、念のため確認します。
Configファイルのディレクトリを確認します。「--config」の値を確認します。

[worker01]$ systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           mq10-kubeadm.conf
        /etc/systemd/system/kubelet.service.d
           mq20-extra-args.conf
   Active: active (running) since 日 2020-08-02 21:43:32 JST; 15min ago
     Docs: https://kubernetes.io/docs/
 Main PID: 842 (kubelet)
    Tasks: 28
   Memory: 110.5M
   CGroup: /system.slice/kubelet.service
           mq842 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --netw...
・・・

config.yamlファイルを確認し、「staticPodPath」のディレクトリを確認します。
このディレクトリにStatic Podのマニフェストファイルを保存します。

/var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: false
  webhook:
    cacheTTL: 0s
    enabled: true
  x509:
    clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
  mode: Webhook
  webhook:
    cacheAuthorizedTTL: 0s
    cacheUnauthorizedTTL: 0s
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
rotateCertificates: true
runtimeRequestTimeout: 0s
staticPodPath: /etc/kubernetes/manifests
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
volumeStatsAggPeriod: 0s

staticPodPathを確認します。workerノードにはマニフェストファイルはありません。

[worker01]$ ls -la /etc/kubernetes/manifests/
合計 0
drwxr-xr-x. 2 root root  6  5月 21 02:46 .
drwxr-xr-x. 4 root root 54  2月 26 06:39 ..

Static Podマニフェストファイルの作成

マニフェストファイルを作成し、staticPodPathに保存します。
ここではとりあえずnginxのマニフェストファイルを作成しました。

/etc/kubernetes/manifests/nginx-static.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx-static
  name: nginx-static
spec:
  containers:
  - image: nginx
    name: nginx-static
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

コンテナの確認

マニフェストファイルを作成すると、コンテナが自動で起動します。

[worker01]$ sudo docker ps | grep nginx-static
ba94e5f78d5c        nginx                  "/docker-entrypoint.…"   53 seconds ago      Up 53 seconds                           k8s_nginx-static_nginx-static-k8s-worker01_default_f0ea6bb0822d50cc515c545276d758e8_0
1e43b8139676        k8s.gcr.io/pause:3.1   "/pause"                 58 seconds ago      Up 57 seconds                           k8s_POD_nginx-static-k8s-worker01_default_f0ea6bb0822d50cc515c545276d758e8_0

Podの確認(Masterノード)

MasterノードでもStatic Podが起動したことが確認できます。

[master]$ kubectl get pod nginx-static-k8s-worker01 -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
nginx-static-k8s-worker01   1/1     Running   0          2m59s   192.168.79.121   k8s-worker01   <none>           <none>

まとめ

どういうときにユーザオリジナルのStatic Podを作成するのかわかりませんが、kubeletのConfigファイルの確認から、staticPodPathの確認方法は押さえておこうと思います。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?