模拟题目:

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

namespace haddock 中名为 nosql 的 Deployment 的 Pod 因其容器已用完资源而无法启动。 请更新 haddock Deployment ,使 Pod

  • 为其容器请求 15Mi 的内存
  • 将内存限制为 haddock namespace 设置的最大内存容量一半。 您可以在 /ckad/chief-cardinal/nosql.yaml 找到 nosql Deployment 的配置清单。

参考:

https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/

file

解答:

切换环境

kubectl config use-context k8s

查看namespace最大资源请求

kubectl describe ns haddock
#或者
kubectl -n haddock describe limitranges

注意查看Max的值 file

修改deployment

方法1

直接编辑deployment

kubectl -n haddock edit deployments.apps nosql

在大约40行左右添加资源限制

         resources:
           limits:
             memory: 20Mi
           requests:
             memory: 15Mi

file 检查

kubectl -n haddock describe deployments.apps nosql

file

方法2

删除重建

kubectl delete -f /ckad/chief-cardinal/nosql.yaml

编辑文件,添加资源请求

vim /ckad/chief-cardinal/nosql.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nosql
  namespace: haddock
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nosql
  template:
    metadata:
      labels:
        app: nosql
    spec:
      containers:
      - image: nginx:1.16
        name: nginx
        #添加下面的资源请求
        resources:
          requests:
            memory: "15Mi"
          limits:
            memory: "20Mi"

创建&检查

kubectl apply -f /ckad/chief-cardinal/nosql.yaml
kubectl -n haddock describe deployments.apps nosql

file