【k8s集群应用】kubernetes pod资源控制管理(二)

Kubernetes Pod 核心特性详解

Pod 容器的资源限制

通过 resources.requestsresources.limits 配置资源分配:

  • requests:定义 Pod 容器启动时需预留的资源量。
  • limits:定义 Pod 容器可使用的最大资源量。

资源类型

  • CPU:单位为 m(毫核,如 1000m=1核)或浮点数(如 0.5)。
  • 内存/存储:支持单位 KiMiGi(2 的幂次)或 kMG(10 的幂次),默认单位为字节。
  • GPU:需安装插件支持(如 nvidia.com/gpu)。

关键规则

  • 若容器内存使用超过 limits.memory,会触发 OOM(内存不足)错误,进程被终止。

PS:在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以 MB、GB为单位的,1GB 就是1,000,000,000Byte,而操作系统是以2进制为处理单位的,因此检查硬盘容量时是以MiB、GiB为单位,1GiB=2^30=1,073,741,824,相比较而言,1GiB要比1GB多出1,073,741,824-1,000,000,000=73,741,824Byte,所以检测实际结果要比标出的少一些。
在您的YAML文件和命令输出中添加注释可以帮助更好地理解每个部分的功能和含义。以下是对您的YAML文件和命令输出进行注释的版本:

示例

apiVersion: v1            # Kubernetes API版本
kind: Pod                # Kubernetes资源类型,这里是Pod
metadata:
  name: frontend         # Pod的名称
spec:
  containers:            # Pod中的容器列表
  - name: web            # 容器的名称
    image: nginx         # 容器使用的镜像
    env:                 # 容器内的环境变量列表
    - name: WEB_ROOT_PASSWORD
      value: "password"  # 环境变量的名称和值
    resources:           # 容器资源请求和限制
      requests:
        memory: "64Mi"   # 请求的内存量
        cpu: "250m"      # 请求的CPU量(250毫核)
      limits:
        memory: "128Mi"  # 限制的内存量
        cpu: "500m"      # 限制的CPU量(500毫核)
  - name: db             # 第二个容器的名称
    image: mysql         # 第二个容器使用的镜像
    env:                 # 第二个容器内的环境变量列表
    - name: MYSQL_ROOT_PASSWORD
      value: "abc123"    # 第二个环境变量的名称和值
    resources:           # 第二个容器的资源请求和限制
      requests:
        memory: "512Mi"  # 请求的内存量
        cpu: "0.5"       # 请求的CPU量(半个核)
      limits:
        memory: "1Gi"    # 限制的内存量
        cpu: "1"         # 限制的CPU量(一个核)
kubectl apply -f pod2.yaml  # 应用YAML文件中定义的Pod到Kubernetes集群
kubectl describe pod frontend  # 显示Pod的详细信息,包括状态、事件和资源使用情况
kubectl get pods -o wide  # 显示集群中所有Pod的详细信息,包括IP地址、所在节点等
# 输出示例:
NAME       READY   STATUS    RESTARTS   AGE   IP           NODE     NOMINATED NODE   READINESS GATES
frontend   2/2     Running   5          15m   10.244.2.4   node02   <none>           <none>

kubectl describe nodes node02  # 显示指定节点的详细信息,包括资源分配情况
# 输出中的资源分配部分示例(已添加注释):
Namespace                  Name                           CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                  ----                           ------------  ----------  ---------------  -------------  ---
  default                    frontend                       500m (25%)    1 (50%)     128Mi (3%)       1024Mi (25%)  # 注意:这里的Memory Limits应为1Gi(1024Mi),可能是输出时的格式问题
  kube-system                kube-flannel-ds-amd64-f4pbp    100m (5%)     100m (5%)   50Mi (1%)        50Mi (1%)     19h
  kube-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值