Ritolabo
  1. Home

Volume: Kubernetes でコンテナのデータを永続化する

  • Kubernetes
Volume: Kubernetes でコンテナのデータを永続化する

コンテナの中に書いたファイルは、コンテナが起動し直すと消える。Volume は、コンテナの外にファイルの置き場所を用意する仕組み。kind で作ったローカルクラスタで、Volume なし・emptyDir・PersistentVolumeClaim の 3 つに同じファイルを書き、コンテナの起動し直しと Pod の作り直しでいつ消えるかを、実行結果とあわせて確認する。

requests / limits: Kubernetes でコンテナが使う CPU とメモリを決める

  • Kubernetes
requests / limits: Kubernetes でコンテナが使う CPU とメモリを決める

requests / limits は、コンテナが使う CPU とメモリの量を Deployment の YAML に書く設定。kind で作ったローカルクラスタで、書かない Pod は Node に何も予約しないこと、requests が Node の空きを超えると Pending になること、メモリの limits を超えると OOMKilled で止められること、CPU の limits は待たされるだけで止められないことを、実行結果とあわせて確認する。

Probe: Kubernetes でコンテナが動いているかを確かめる

  • Kubernetes
Probe: Kubernetes でコンテナが動いているかを確かめる

Probe は、コンテナの中のアプリが動いているかを kubelet に定期的に確かめさせる設定。kind で作ったローカルクラスタで、Probe なしの Pod のアプリを壊しても Running のままであること、readiness probe が失敗すると Service の届け先から外れること、liveness probe が失敗するとコンテナが起動し直されることを、実行結果とあわせて確認する。

Secret: Kubernetes で機密情報を Pod に渡す

  • Kubernetes
Secret: Kubernetes で機密情報を Pod に渡す

Secret は、パスワードのような機密情報をキーと値の組で保存したデータ。kind で作ったローカルクラスタで Secret を作り、kubectl describe では値が表示されないこと、保存されている値は base64 でエンコードされているだけでデコードすれば読めること、Pod が環境変数として受け取れることを、実行結果とあわせて確認する。

ConfigMap: Kubernetes で Pod に渡す設定値

  • Kubernetes
ConfigMap: Kubernetes で Pod に渡す設定値

ConfigMap は、設定の値をキーと値の組で保存するリソース。kind で作ったローカルクラスタで、ConfigMap の値を Pod の環境変数とファイルの両方に渡し、ConfigMap を書き換えたときに環境変数とファイルで反映のされ方が違うことを、実行結果とあわせて確認する。

Service: Kubernetes で Pod への宛先を固定する

  • Kubernetes
Service: Kubernetes で Pod への宛先を固定する

Service は、複数の Pod に対する変わらない宛先を定義するリソース。kind で作ったローカルクラスタで、Pod の IP が変わること、Service と EndpointSlice の関係、クラスタの中から Service の名前でアクセスしたときの動き、Pod が入れ替わったときの届け先の更新を、実行結果とあわせて確認する。

Author

rito

rito

  • Backend Engineer
  • Tokyo, Japan
  • PHP 5 技術者認定上級試験 認定者
  • 統計検定 3 級