Kubernetesの構築/運用で気をつけること
こんにちわ
がじぇったー (@hackmylife7) | Twitter
です。
k8sのPracticeとをまとめていきます。
- Kubernetesの構築で気をつけること
- Docker Imageや環境に関する機密情報はSecretsリソースを用いて秘匿し、設定ファイルはSWのポータビリティを高めるためにConfigMapsリソースを使う
- readiness probes 、liveness probesを用い、Podの死活監視を行う
- 消えたら困る必要なデータはPersistant Volume上で保存する
- Serviceを使い、外部からのトラフィックを分散し、耐障害性を高めるようにする
- マニフェストファイルを用いリソースを宣言する(コマンドラインは用いない)
- image pull policyに気をつける
- 'latest'のimage tagには気をつける
- Namespaceで環境を分離し、Resource Limitを用いる
Kubernetesの構築で気をつけること
Docker Imageや環境に関する機密情報はSecretsリソースを用いて秘匿し、設定ファイルはSWのポータビリティを高めるためにConfigMapsリソースを使う
こちらも以下の記事で書いた通り、機密情報とMWの設定値やファイルで使う情報は分けて考える
readiness probes 、liveness probesを用い、Podの死活監視を行う
Auto-Healing機能を用いることによりPod/Containerの障害時の振る舞い(常に再起動するか、停止しておくか)を定義することができる
Serviceを使い、外部からのトラフィックを分散し、耐障害性を高めるようにする
Podは常に稼働しているものではない。外部に公開するアプリケーションの場合はService(Nodeport)を用いトラフィックを分散し、停止したPodにはリクエストが届かないようにする
マニフェストファイルを用いリソースを宣言する(コマンドラインは用いない)
また、マニフェストファイルはJsonではなくYAMLファイルを用いるようにする
そして複数のオブジェクトであっても関係するファイルに関しては一つのマニフェストファイルにまとめる
(三つのハイフン"---"で区切ると一つのマニフェストファイルに複数のオブジェクトの定義を書くことができる)
image pull policyに気をつける
全てのコンテナで同じpull policyを使う
'latest'のimage tagには気をつける
マニフェストファイルでimage名のみを記載すると自動的にlatestをコンテナレジストリからひっぱってしまう。
商用環境で動かす際にはtagでバージョンを固定するようにする
Namespaceで環境を分離し、Resource Limitを用いる
以下の記事にも書いたが、同一のクラスタやリソースを共有する場合は、環境をNamespaceで分離し、使用できる環境をチームごとに分ける
参考(Kubernetesの最強参考書)
Kubernetes完全ガイド (impress top gear)
- 作者: 青山真也
- 出版社/メーカー: インプレス
- 発売日: 2018/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Kubernetesの他の記事へは下記の一覧から飛べるようにしているので参照ください。