がじぇったー

お金と家電とプログラミングのブログ

Kubernetesの構築/運用で気をつけること

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。

k8sのPracticeとをまとめていきます。



f:id:gadgeterkun:20190810170256j:plain

Kubernetesの構築で気をつけること

Docker Imageや環境に関する機密情報はSecretsリソースを用いて秘匿し、設定ファイルはSWのポータビリティを高めるためにConfigMapsリソースを使う

こちらも以下の記事で書いた通り、機密情報とMWの設定値やファイルで使う情報は分けて考える

gadgeterkun.hatenablog.com

readiness probes 、liveness probesを用い、Podの死活監視を行う

Auto-Healing機能を用いることによりPod/Containerの障害時の振る舞い(常に再起動するか、停止しておくか)を定義することができる


gadgeterkun.hatenablog.com

消えたら困る必要なデータはPersistant Volume上で保存する

Podの再起動でデータが消えないようにする

gadgeterkun.hatenablog.com

Serviceを使い、外部からのトラフィックを分散し、耐障害性を高めるようにする

Podは常に稼働しているものではない。外部に公開するアプリケーションの場合はService(Nodeport)を用いトラフィックを分散し、停止したPodにはリクエストが届かないようにする

gadgeterkun.hatenablog.com

マニフェストファイルを用いリソースを宣言する(コマンドラインは用いない)

また、マニフェストファイルはJsonではなくYAMLファイルを用いるようにする

そして複数のオブジェクトであっても関係するファイルに関しては一つのマニフェストファイルにまとめる

(三つのハイフン"---"で区切ると一つのマニフェストファイルに複数のオブジェクトの定義を書くことができる)

image pull policyに気をつける

全てのコンテナで同じpull policyを使う

'latest'のimage tagには気をつける

マニフェストファイルでimage名のみを記載すると自動的にlatestをコンテナレジストリからひっぱってしまう。

商用環境で動かす際にはtagでバージョンを固定するようにする

Namespaceで環境を分離し、Resource Limitを用いる

以下の記事にも書いたが、同一のクラスタやリソースを共有する場合は、環境をNamespaceで分離し、使用できる環境をチームごとに分ける

gadgeterkun.hatenablog.com


参考(Kubernetesの最強参考書)

Kubernetes完全ガイド (impress top gear)

Kubernetes完全ガイド (impress top gear)

Kubernetesの他の記事へは下記の一覧から飛べるようにしているので参照ください。

gadgeterkun.hatenablog.com