Kubernetes実戦(二十九)-クラスタリソース管理(CPU&Memory)


Kubernetesはコンテナクラスタ管理プラットフォームであり、全体のプラットフォームの資源使用状況を統計し、合理的に資源をコンテナ使用に分配し、コンテナのライフサイクル内に十分な資源があることを保証し、その運行を保証する必要がある.これらのリソースは、所望のシナリオ(仕様)と現在のシナリオ(ステータス)の2つの異なるシナリオに分けることができる.リソース要件とリソース容量は、仕様(所望のシナリオ)とみなすことができ、リソース使用はステータス(現在のシナリオ)とみなすことができる.Kubernetesスケジューラは、この2つのシナリオを用いてノード容量、リソース要件などを推定することができる.
リソースの仕様は、「限度額」および「要求」という用語で説明できます.
  • リクエスト:コンテナリクエストのリソース数.コンテナがリソースリクエストを超えると、リクエスト数に戻される可能性があります.
  • 限度額:コンテナが使用できるリソースの上限.コンテナがその限度額を超えようとすると、Kubernetesが別のコンテナにリソースが必要であることを決定した場合、現在のコンテナは終了します.一般的に、すべてのコンテナのリソース限度額の和がクラスタ全体のリソース容量に等しいことを維持することは意味があります(しかし、実際にはメモリなどの圧縮不可能なリソースに対しては、これは少し難しいです).
  • Podを作成する場合は、リソース制限(現在サポートされているリソースタイプはCPUとメモリ)を指定できます.すなわち、各コンテナのリソース要求(Request)とリソース制限(Limit)を指定します.リソース要求はコンテナに必要な最小リソース需要であり、リソース制限はコンテナが超えられないリソース上限です.以下に、Pod申請メモリとCPUの例を示します.
    [root@master ~]# cat tomcat.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        name: tomcat
      name: tomcat
    spec:
      containers:
        - name: tomcat
          image: tomcat:latest
          resources:
            requests:
              memory: "256Mi"
              cpu: "500m"
            limits:
              memory: "512Mi"
              cpu: "1000m"

    上述した組立てファイルの例では、Podに対するMemeryは256 MB~512 MBに制限され、Cpuは0.5~1個のCPUに制限される.
    このクラスタリソース管理(CPU&Memory)の説明を完了します.