kubernetes之资源控制和探针

文章目录

  • 一、资源类型
    • 二、资源请求和Pod和容器的限制
    • 2.1、编写yaml文件,并创建pod资源
  • 二:pod的重启策略
    • 2.1:查看pod资源的重启策略
    • 2.11:编写一个yaml文件
    • 2.12:创建pod资源
    • 2.13:修改shua2.yaml的重启策略改为Never重启从不重启
  • 三:K8S使用就绪和存活探针配置健康检查
    • 3.1:探针的三种检查方式
    • 3.2:使用exec方式检查
    • 3.3:使用httpGet方式检查
    • 3.4:定义TCP活动探针

一、资源类型

在K8S中可以对两类资源进行限制:cpu和内存。

CPU的单位有:

正实数,代表分配几颗CPU,可以是小数点,比如0.5代表0.5颗CPU,意思是一颗CPU的一半时间。2代表两颗CPU。
正整数m,也代表1000m=1,所以500m等价于0.5。
内存的单位:

正整数,直接的数字代表Byte
k、K、Ki,Kilobyte
m、M、Mi,Megabyte
g、G、Gi,Gigabyte
t、T、Ti,Terabyte
p、P、Pi,Petabyte在这里插入图片描述

二、资源请求和Pod和容器的限制

在K8S中,对于资源的设定是落在Pod里的Container上的,主要有两类,limits控制上限,requests控制下限。其位置在:

spec.containers[].resources.limits.cpu ‘//CPU上限’

spec.containers[].resources.limits.memory ‘//内存上限’

spec.containers[].resources.requests.cpu ‘//创建时候分配的基本CPU资源’

spec.containers[].resources.requests.memory ‘//创建时分配的基本内存资源’

2.1、编写yaml文件,并创建pod资源

这是一个例子。以下Pod具有两个容器。每个容器都有一个0.25 cpu和64MiB(2 26个字节)的内存请求。每个容器的限制为0.5 cpu和128MiB的内存。您可以说Pod的请求为0.5 cpu和128 MiB的内存,限制为1 cpu和256MiB的内存。

[root@localhost demo]# vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: frontend
spec:
  containers:
  - name: nginx               #容器
    image: nginx              #镜像
    resources:                #资源
      requests:
        memory: "64Mi"        #基础内存
        cpu: "250m"           #基础cpu25%
      limits:
        memory: "128Mi"       #内存上限
        cpu: "500m"           #cpu上限
  - name: tomcat
    image: tomcat
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"


创建yaml资源pod

[root@localhost demo]# kubectl apply -f pod1.yaml 
pod/frontend created

#查看pod详细信息
Events:
  Type    Reason     Age    From                     Message
  ----    ------     ----   ----                     -------
  Normal  Scheduled  3m25s  default-scheduler        Successfully assigned default/frontend to 192.168.158.20
  Normal  Pulling    3m24s  kubelet, 192.168.158.20  pulling image "nginx"
  Normal  Pulled     3m17s  kubelet, 192.168.158.20  Successfully pulled image "nginx"
  Normal  Created    3m17s  kubelet, 192.168.158.20  Created container
  Normal  Started    3m17s  kubelet, 192.168.158.20  Started container
  Normal  Pulling    3m17s  kubelet, 192.168.158.20  pulling image "tomcat"
  Normal  Pulled     3m10s  kubelet, 192.168.158.20  Successfully pulled image "tomcat"
  Normal  Created    3m10s  kubelet, 192.168.158.20  Created container
  Normal  Started    3m10s  kubelet, 192.168.158.20  Started container

#查看pod资源
[root@localhost demo]# kubectl get pods
NAME       READY   STATUS    RESTARTS   AGE
frontend   2/2     Running   0          3m50s

查看node节点资源分配

你可能感兴趣的:(Kubernetes,kubernetes,docker,云计算,运维)