k8sのNamespaceとResource Quotaについて
こんにちわ
がじぇったー (@hackmylife7) | Twitter
です。ガジェット情報をいち早くツイートすることを生きがいにしているのでよかったらフォローください。
今日はk8sのNamespaceとResource Quotaについてです。
TL;DR(要約)
- 複数のチームが同一の物理リソースで複数のクラスタを立ち上げる場合はNamespaceを用い環境を仮想的に分離する
- Namespaceごとに使用できるリソースを制限することで、一つのチームがリソースを食い過ぎて他の環境に影響を与えてしまう、といった事態を防ぐことができる
Namespaceについて
Namespaceは同一の物理リソース上で稼働するKubernetesクラスタを複数の仮想クラスタに分割するKubernetesオブジェクトである
複数のユーザー、複数のチーム(プロジェクト)が同一のリソースで複数のクラスタを立ち上げる際の使用を目的としている
Namespace内のリソースには、ユニークな名称をつけなければならないが、Namespaceが分かれていれば、同一の名称をつけることができる。
また、Namespaceごとにリソースの上限値を定めることができる
(Namespaceに応じた権限をユーザに設定することにより、Aユーザがアクセスできる環境、Bユーザがアクセスできる環境と、分けることができる)
ResourceQuotaについて
一つのユーザやグループがクラスタリソースを使いすぎないようリソースの上限値をNamespaceごとに割り当てることができる
例えばNamespaceに対して以下のような項目を制限できる
- CPU
- Memory
- Storage
- Podの数
例
apiVersion: v1 kind: ResourceQuota metadata: name: mem-cpu-demo spec: hard: requests.cpu: "1" requests.memory: 1Gi limits.cpu: "2" limits.memory: 2Gi
また、Podの単位でも以下のように使用するリソースを制限することが可能
apiVersion: v1 kind: Pod metadata: name: quota-mem-cpu-demo spec: containers: - name: quota-mem-cpu-demo-ctr image: nginx resources: limits: memory: "800Mi" cpu: "800m" requests: memory: "600Mi" cpu: "400m"
参考(Kubernetesの最強参考書)
Kubernetes完全ガイド (impress top gear)
- 作者: 青山真也
- 出版社/メーカー: インプレス
- 発売日: 2018/09/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Kubernetesの他の記事へは下記の一覧から飛べるようにしているので参照ください。