关注 迪答数据 公众号获取更多 技术/数据 干货文章 

文章传送门:数据治理之指标体系管理


管理容器的计算资源

参考文档: Kubernetes Managing Compute Resources for Containers(opens new window)https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

概述

在 Kubernetes 中创建工作负载时,您可以为 Pod 中的每一个容器指定其所需要的内存(RAM)大小和 CPU 数量。如果这些信息被指定了,Kubernetes 调度器可以更好的决定将 Pod 调度到哪一个节点。对于容器来说,其所需要的资源也将依据其指定的数值得到保证。

资源类型及计量

当我们讨论计算资源的时候,主要是指 CPU 和 内存。CPU 的计量单位是内核的单元数,内存的计量单位是 byte 字节数。应用程序可以按量请求、分配、消耗计算资源。

CPU 的计量

在 Kubernetes 中,1 个 CPU 代表:

  • 1 AWS vCPU
  • 1 GCP Core
  • 1 Azure vCore
  • 1 IBM vCPU
  • 物理机上 Intel 超线程 CPU 的 1 个超线程(Hyperthread)

Kubernetes 中,0.5 代表请求半个 CPU 资源。表达式 0.1 等价于 表达式 100m (英文读作 one hundred millicpu 或 one hundred millicores)。在 API Server 中,表达式 0.1 将被转换成 100m,精度低于 1m 的请求是不受支持的。 CPU 的计量代表的是绝对值,而非相对值,例如,您请求了 0.1 个 CPU,无论您的节点是 单核、双核、48核,您得到的 CPU 资源都是 0.1 核。

TIP

在 top 命令查看CPU消耗,100% 代表 1核;4核为 400%;10% 代表 0.1 核 或者 100m

内存的计量

内存的计量单位是 byte 字节。您可以使用一个整数来表达内存的大小,也可以使用后缀来表示(E、P、T、G、M、K)。您也可以使用 2 的幂数来表示内存大小,其后缀为(Ei、Pi、Ti、Gi、Mi、Ki)。例如,下面的几个表达方式所表示的内存大小大致相等:

128974848129e6129M123Mi

查看资源命令

1.top命令查看所有pod,nodes中内存,CPU使用情况

kubectl top pod -n bigdata

data-synchronization-9754cb677-gdgxv          6m           676Mi           
data-synchronization-taskmanager-1-1          8m           891Mi           
dolphinscheduler-alert-7c449f8446-nng4t       2m           508Mi           
dolphinscheduler-api-5fccd6d446-qbtjm         4m           659Mi           
dolphinscheduler-master-0                     4m           982Mi           
dolphinscheduler-worker-0                     2m           1017Mi          
dolphinscheduler-worker-1                     4m           992Mi           
dolphinscheduler-worker-2                     2m           1004Mi          
minio-0                                       7m           222Mi           
minio-1                                       7m           199Mi           
minio-2                                       4m           206Mi           
minio-3                                       6m           168Mi           
minio-4                                       6m           164Mi 

2.查看具体某一个pod

kubectl top pod minio-4 -n bigdata

NAME      CPU(cores)   MEMORY(bytes)   
minio-4   7m           164Mi    

更多查看命令 :Kubernetes 集群分析查看内存,CPU

 Flink任务资源分配配置

配置项 说明
JobManager CPU Cores 默认值为1。根据Flink最佳实践,单个JM内存资源需要至少配置为0.25 core和1 Gi,才能保证作业稳定运行。
JobManager Memory 最小值为1 Gi。单位建议使用Gi或Mi,例如,1024 Mi或1.5 Gi。
TaskManager CPU Cores 默认值为1。根据Flink最佳实践,单个TM内存资源需要至少配置为0.25 core和1 Gi,才能保证作业稳定运行。
TaskManager Memory 最小值为2 Gi。单位建议使用Gi或Mi,例如,1024 Mi或1.5 Gi。
并发度 作业全局并发数,默认值为1。
Flink配置 可以配置的参数及说明,详情请参见Configuration

其他命令

复制容器中文件

kubectl cp flink-dev/sit-member-statistic-10-26-1-5c8b55d48c-2d8tt:/opt/flink/usrlib/ /tmp/test

进入到pod里面命令
 

kubectl exec -n flink-dev sit-member-statistic-10-26-1-5c8b55d48c-2d8tt -it -- bash

Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐