k8s pod resource

k8s pod resource

yaml 配置

# pod-resource.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-resource
spec:
  containers:
    - name: pod-resource
      image: nginx
      ports:
        - containerPort: 80
      resources:
        requests:
          memory: 100Mi
          cpu: 500m
        limits:
          memory: 200Mi
          cpu: 1000m

配置说明

  • requests 调度时候需要使用的资源
  • limits 使用时候资源上线
  • requests limits 两个值相等,优先级最高,node 资源不够时候会保留到最后
  • 内存值说明:100Mi 是 2 进制的值,100M 是 10 进制的值。比如 1Ki == 1024,1K == 1000
  • cpu 值说明:500m,表示1秒内占用500毫秒,等于0.5 cpu

创建 pod

#kubectl apply -f pod-resource.yaml 
pod/pod-resource created

实时观察创建过程

#kubectl get pods -owide -w
NAME           READY   STATUS    RESTARTS   AGE   IP       NODE     NOMINATED NODE   READINESS GATES
pod-resource   0/1     Pending   0          0s    <none>   <none>   <none>           <none>
pod-resource   0/1     Pending   0          0s    <none>   node2    <none>           <none>
pod-resource   0/1     ContainerCreating   0          0s    <none>   node2    <none>           <none>
pod-resource   1/1     Running             0          61s   10.244.2.3   node2    <none>           <none>

查看 pod 详情

kubectl describe pods pod-resource

image-20240123114600585

容器使用内存超过 limit,会出现 OOM,容器会被销毁

omm 例子

apiVersion: v1
kind: Pod
metadata:
  name: memory-oom
spec:
  containers:
    - name: memory-oom
      image: polinux/stress
      resources:
        requests:
          memory: "100Mi"
        limits:
          memory: "150Mi"
      command: ["stress"]
      args: ["--vm", "1", "--vm-bytes", "200M", "--vm-hang", "1"]

查看 pod 状态

#kubectl get po -w
NAME         READY   STATUS    RESTARTS   AGE
memory-oom   0/1     Pending   0          0s
memory-oom   0/1     Pending   0          0s
memory-oom   0/1     ContainerCreating   0          0s
memory-oom   0/1     OOMKilled           0          3s
memory-oom   0/1     OOMKilled           1 (3s ago)   5s
memory-oom   0/1     CrashLoopBackOff    1 (2s ago)   6s
memory-oom   0/1     OOMKilled           2 (17s ago)   21s
memory-oom   0/1     CrashLoopBackOff    2 (10s ago)   31s

image-20240124111104849