Kubernetes生产实践系列之三十:Kubernetes基础技术之集群计算资源管理

kubernetes技术详解,带你深入了解k8s 在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年Borg系统运行管理着成千上万的容器应用。Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。自我修复。 阅读详情

一、前言

在Kubernetes环境中,CPU和内存是最主要的计算资源,Kubernetes建立了完善的机制来定义、分配、调度和控制这两类资源的使用。Kubernetes实际上只是一个资源的调度者,真正的资源管控还是要翻译成容器运行时的参数,最终由操作系统Kernel的CPU和内存资源管理器执行:

 

转载自https://blog.youkuaiyun.com/cloudvtech

二、Kubernetes的资源定义和管控

2.1 资源的计量单位

在Kubernetes中1个CPU相当于1个vCPU核心的算力,记为1000m(m为milicores,代表1vCPU的千分之一核心算力),request里面的2、1、0.5、、0.1、100m分别代表可以占用当前系统2个、1个、0.5个、0.1个、0.1个vCPU等量的CPU资源。

内存可以使用KB、MB、GB等单位计量。并且由于Kubernetes节点默认会关闭SWAP的功能,所以这里定义的内存基本上是RSS+page cache的总和,RSS是堆、栈以及从内存直接分配的空间,page cache是内存中用于缓存磁盘块的部分。

2.2 资源的定义和调度

Kubernetes对于资源的定义包含requests和limits两个方面:

    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"

如果POD有多个容器,则整个POD的requests和limits值是各个容器的requests和limits的累加。

requests和limits这两个标记本身的作用以及分别对于CPU和内存的含义都是不一样的;对于CPU而言:

  • requests的作用有两个,一是保证POD中容器可使用的最小CPU资源需求,二是用于Kubernetes的scheduler进行节点的选择和POD的调度;requests属于“准预留”的资源,这部分资源是系统直接从总资源里面扣除并记账给该POD的,但是如果该POD中容器没有使用到requests的CPU量,多余的CPU资源是可以给其它POD使用的,但是如果POD中容器真的需要这么多CPU资源的时候,系统会从其它低优先级的POD中回收CPU资源来保证POD的requests用量
  • limits的作用也有两个,一是给予POD中容器高于requests的一定幅度的可用CPU资源,客观上实现了系统CPU资源的超卖,二是在节点CPU资源紧缺的时候进行管控,包括CPU throtting

而对于内存而言:

  • requests的作用有两个,一是保证POD中容器可使用的最小资源需求,二是为Kubernetes进行POD调度提供依据并实施资源的“准预留”,三是在系统内存压力的时候,oom score打分和管控操作提供参考
  • limits的作用也有两个,一是给予POD中容器高于requests的一定幅度的可用内存资源,客观上实现了系统内存资源的超卖,二是在POD内存使用超出或者节点内存压力的时候,启动OOM killer进行管控

2.3 资源等级和管控

在Kubernetes里面,将资源分成不同的QoS类别,并且通过POD里面的资源定义来区分POD对于平台提供的资源保障的SLA等级:

  • Guaranteed,POD中每个容器都为CPU和内存设置了相同的requests和limits,这类POD具有最高优先级
  • Burstable,至少有一个容器设置了CPU或内存的requests属性,但不满足Guaranteed类别要求的POD,它们具有中等优先级
  • BestEffort,未为任何一个容器设置requests和limits属性的POD,它们的优先级为最低级别

在部署了Kubernetes的系统里面,CPU QoS对应的cgroup路径如下:

ls /sys/fs/cgroup/cpu/kubepods.slice
......
drwxr-xr-x 56 root root 0 8月   6 18:05 kubepods-besteffort.slice
drwxr-xr-x 52 root root 0 8月  17 10:16 kubepods-burstable.slice
drwxr-xr-x  4 root root 0 4月   8 18:11 kubepods-pod54222000_7981_11ea_bd09_fa163ebda1b8.slice
drwxr-xr-x  4 root root 0 12月 30 2019 kubepods-pod822f54ed_2178_11ea_9434_fa163ebda1b8.slice
drwxr-xr-x  4 root root 0 12月 30 2019 kubepods-pod84b045b2_2178_11ea_9434_fa163ebda1b8.slice
drwxr-xr-x  4 root root 0 12月 30 2019 kubepods-pod85398a8a_2178_11ea_9434_fa163ebda1b8.slice
drwxr-xr-x  4 root root 0 12月 30 2019 kubepods-podd84e1b25_2242_11ea_9434_fa163ebda1b8.slice
drwxr-xr-x  4 root root 0 1月  15 2020 kubepods-podf8de6f99_3770_11ea_9434_fa163ebda1b8.slice
......

而kubepods-besteffort.slice和kubepods-burstable.slice两个目录下又有很多Kubernetes调度到本节点的Burstable和BestEffort的POD,而在例如目录kubepods-pod54222000_7981_11ea_bd09_fa163ebda1b8.slice下面存放的是Guaranteed的POD,它里面的CPU资源定义如下:

[root@k8s-node-01 kubepods-pod54222000_7981_11ea_bd09_fa163ebda1b8.slice]# cat cpu.cfs_period_us
100000
[root@k8s-node-01 kubepods-pod54222000_7981_11ea_bd09_fa163ebda1b8.slice]# cat cpu.cfs_quota_us
100000

针对不同的优先级的业务,在资源紧张或者超出的时候会有不同的处理策略;同时,针对CPU和内存两类不同类型的资源,一种是可压缩的,一种是不可压缩的,所以资源的分配和调控策略也会有很大区别。CPU资源紧缺时,如果节点处于超卖状态,则会根据各自的requests配置,按比例分配CPU时间片,而内存资源紧缺时需要内核的oom killer进行管控,Kubernetes负责为OOM killer提供管控依据:

  • BestEfford类容器由于没有要求系统供任何级别的资源保证,将最先被终止;但是在资源不紧张时,它们能尽可能多地占用资源,实现资源的复用和部署密度的提高
  • 如果BestEfford类容器都已经终止,Burstable中等优先级的的POD将被终止
  • Guaranteed类容器拥有最高优先级,只有在内存资源使用超出limits的时候或者节点OOM时得分最高,才会被终止;OOM得分主要根据QoS类和容器的requests内存占机器总内存比来计算:

OOM得分越高,该进程的优先级越低,越容易被终止;根据公式,Burstable优先级的POD中,requests内存申请越多,越容易在OOM的时候被终止。

转载自https://blog.youkuaiyun.com/cloudvtech

三、Docker的资源定义和管控

3.1 Docker对于CPU和内存的资源定义

如文章《Kubernetes生产实践系列之二十九:Kubernetes基础技术之容器关键技术实践》所说的,Docker通过Linux Kernel的cgroups进行资源的管控,与之相应的是Docker支持的资源定义方式,比如CPU资源的常用定义方式如下:

  • 设定CPU shares (--cpu-shares),通过share的比例来限制,比如一个容器定义share为512,另一个容器定义share为1024,则它们占用的CPU分别为33%和66%;docker run --rm -it --cpu-shares=512 nginx bash
  • 设定CPU核心数 (--cpus),--cpus 参数可以限定容器能使用的 CPU 核数,docker run --rm -it --cpus=2 nginx
  • 绑定CPU核心 (--cpuset-cpus),docker run --rm -it --cpuset-cpus=0,1 nginx bash
  • 设定period和quota(--cpu-period和--cpu-quota),表示在cpu-period的周期内可以使用的cpu-quota数,真正能使用的 CPU 核数就是 cpu-quota / cpu-period;Docker默认period是100000,单位是微秒,也就是100毫秒,如果将cpu-quota设置为50000,表明在每100毫秒的时间段内,可以使用50毫秒的CPU时间,或者等量与0.5个核心的CPU资源;如果在一个时间间隔内以及占用了50毫秒,在这100毫秒时间间隔段内,这个容器进程就无法继续运行,一直到下一个时间周期

这里的--cpu-shares存储在cgroup的cpu.shares文件,--cpu-period和--cpu-quota存储在cpu.cfs_period_us和cpu.cfs_quota_us文件。另外,在Docker中支持的常用的内存设置方式是-m或者--memory:docker run --rm -it --memory=512m --cpus=2 nginx,这个信息会被存储到cgroup文件memory.limit_in_bytes中

3.2 Kubernetes的资源定义映射到Docker资源定义

对于如下的资源定义:

    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"

Kubernetes的POD资源定义文件中:

  • spec.containers[].resources.requests.cpu会被转成docker run的--cpu-shares参数
  • spec.containers[].resources.limits.cpu会被转化成--cpu-quota参数(--cpu-period一般默认100毫秒,而--cpu-quota的最小值是1毫秒),转化方法是CPU limits先转化成milicores然后在乘以100,比如如果是CPU是2,则先变成2000m在乘以100即200000,这里就是500x100=50000
  • spec.containers[].resources.limits.memory会被转成docker run的--memory参数

spec.containers[].resources.requests.memory在docker run里面没有对应的参数,它的作用还是在于在OOM的时候,为OOM score的计算提供参考,同QoS等级的容器,requests越大越容易被OOM kill。一般而言,系统对于CPU或者内存资源超过requests或者limits时候可以采取的措施无非是terminate、evict或者throtting,比较权威的解释可以参考Kubernetets如下一段描述:

If a Container exceeds its memory limit, it might be terminated. If it is restartable, the kubelet will restart it, as with any other type of runtime failure.

If a Container exceeds its memory request, it is likely that its Pod will be evicted whenever the node runs out of memory.

A Container might or might not be allowed to exceed its CPU limit for extended periods of time. However, it will not be killed for excessive CPU usage.

3.3 Kubernetes的资源定义和cgroup

部署下述一个POD资源:

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  labels:
    app: busybox
spec:
  containers:
  - image: busybox
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
  restartPolicy: Always

根据这个方式启动了一个Burstable的容器,它应该等同于运行如下命令:

docker run --rm -dt --cpu-shares=250 --cpu-quota=50000 --memory=128m busybox sleep 3600

通过docker inspect查看到的相关信息如下:

[root@k8s-node-04 ~]# docker inspect d6bf12e8da95 -f {{.HostConfig.CpuShares}} 

256

[root@k8s-node-04 ~]# docker inspect d6bf12e8da95 -f {{.HostConfig.CpuQuota}} 

50000

[root@k8s-node-04 ~]# docker inspect d6bf12e8da95 -f {{.HostConfig.CpuPeriod}} 

100000

[root@k8s-node-04 ~]# docker inspect d6bf12e8da95 -f {{.HostConfig.Memory}} 

134217728

可以看到容器对应的cgroup如下:

docker inspect d6bf12e8da95 -f {{.HostConfig.CgroupParent}} 
kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice

所以去如下路径查看cgroup里面对应的信息:

#CPU request and limit in cgroup
[root@k8s-node-04 ~]# cd /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice
[root@k8s-node-04 kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice]# cat cpu.shares
256
[root@k8s-node-04 kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice]# cat cpu.cfs_quota_us
50000
[root@k8s-node-04 kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice]# cat cpu.cfs_period_us
100000

#memory limit in cgroup
[root@k8s-node-04 kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice]# cd /sys/fs/cgroup/memory/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice
[root@k8s-node-04 kubepods-burstable-pod12ea792a_e1c3_11ea_a4ca_fa163ebda1b8.slice]# cat memory.limit_in_bytes 
134217728

转载自https://blog.youkuaiyun.com/cloudvtech

 

四、Kubernetes节点的资源管控

Kubernetes除了对POD进行计算资源管控,也支持借助于cgroups机制对于节点和节点上的Kubernetes服务进程和其它系统进程进行资源管控。在节点启动kubelet的时候,可以为系统进程、kubelet进程预留资源,所以最后节点可以给Kubernetes分配业务POD的资源量可以计算如下:

Node Allocatable Resource = Node Capacity - kube-reserved - system-reserved - eviction-threshold

      Node Capacity
---------------------------
|     kube-reserved       |
|-------------------------|
|     system-reserved     |
|-------------------------|
|    eviction-threshold   |
|-------------------------|
|                         |
|      allocatable        |
|   (available for pods)  |
|                         |
|                         |
---------------------------

这里面的预留资源和阈值都是可以在kubelet启动的时候可以设置的,包括:

  • --cgroup-driver,默认为cgroupfs,另一可选项为systemd,kubelet需要与容器runtime的cgroup-driver保持一致
  • --kube-reserved,用于配置为kube组件如kubelet、kube-proxy等预留资源
  • --system-reserved,用于配置为system进程预留资源
  • --kube-reserved-cgroup和--system-reserved-cgroup是定义进行预留资源管控的cgroups
  • --eviction-hard,用来配置kubelet eviction的阈值,现在只支持memory和ephemeral-storage两种不可压缩资源,对应MemoryPressure和DiskPressure两种状态

在阿里云托管的Kubernetes节点上,可以看到如下一些启动信息:

root      5763     1  4  2019 ?        13-07:33:51 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=172.72.14.1 --pod-infra-container-image=registry-vpc.cn-shanghai.aliyuncs.com/acs/pause-amd64:3.0 --enable-controller-attach-detach=false --enable-load-reader --cluster-domain=cluster.local --cloud-provider=external --hostname-override=cn-shanghai.172.72.14.25 --provider-id=cn-shanghai.i-xxxxxxxxxxx --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --system-reserved=memory=300Mi --kube-reserved=memory=400Mi --eviction-hard=imagefs.available<15%,memory.available<300Mi,nodefs.available<10%,nodefs.inodesFree<5% --cgroup-driver=systemd --anonymous-auth=false --rotate-certificates=true --cert-dir=/var/lib/kubelet/pki

 

 

转载自https://blog.youkuaiyun.com/cloudvtech

K8s概述:几种集群方案的对比 几种集群方案简介 下面以docker部署为主,主流的容器化集群部署方案主要有以下几种: Docker Compose:帮助在同一个节点上部署多个容器。 Docker Swarm:多台机器上部署容器。开箱即用,快速部署容器。偏重容器部署 K8s:社区活跃度高,组件丰富。微服务化,偏重应用的部署。 Marathon+Mesos:大数据组件部署。双层调度,侧重底层资源管理。任务调度需自己实现 compose支持在同一节点上部署,swarm支持在多个节点上部署容器。这两者都是docker原生支持的... 阅读详情

相关推荐

k8s qos实现分析

k8s qos实现分析,cgroup原理,源码路径

fengcai_ke的博客 1544

arm64架构安装kubeedge报错:Unit kubepods.slice already exists

arm64架构安装kubeedge报错:Unit kubepods.slice already exists https://github.com/kubeedge/kubeedge/issues/3303 arm64架构使用最新版本kubeedge1.8.2报错 uname -a Linux davxxxx-mxxx 4.19.95+ #1 SMP Wed Feb 24 17:32:53 CST 2021 aarch64 aarch64 aarch64 GNU/Linux 报错,如下 E1118 12:

yinjl123456的博客 949

kubernetes为系统守护进程预留计算资源

kubernetes的资源预留

rendongxingzhe的博客 1490

k8s中的多pod节点动态控制资源倾斜给其中某一个pod

以nginx-test-limit1,nginx-test-limit2为例 1,查出容器id kubectl describe pod nginx-test-limit12,容器id:3b4a485c589176227157cf394e31f8d4962a7700d1585f58002356ce9affb0612,通过容器id查到Cgroup的路径: docker inspect 3b4a485c5891|grep Cgroup3,进入容器的cpu配置文件目录: /sys/fs/cgroup/cpu/k

m0_37605576的博客 327

【K8S系列】Kubernetes集群资源管理与调度 深度分析

在现代微服务架构中,Kubernetes(K8s)作为容器编排平台,提供了强大的资源管理和调度能力。然而,随着应用规模的扩大和复杂性增加,如何高效地管理和调度集群资源成为一个关键挑战。本文将深入探讨 Kubernetes 中的资源管理策略,重点介绍资源请求和限制、资源配额、限制策略、调度策略以及监控与自动调整机制。

颜淡慕潇 8300

深入浅出ISP:用RKISP2.x Tuner工具理解AWB、AE、HDR等核心模块的实战调参

本文深入解析RKISP2.x Tuner工具在ISP图像处理中的实战应用,重点探讨AWB、AE、HDR等核心模块的调参技巧。通过环境搭建、调试工具使用和实际案例,帮助开发者掌握如何在不同光照条件下优化图像质量,实现精准的白平衡、曝光控制和动态范围处理。

weixin_26802933的博客 487

实战:CGroups与Namespaces-20211103

本节我们来一起了解下容器背后的两个核心技术:CGroups 和 Namespace。 目录 文章目录目录1、CGroups概述2、:heart:实战:CGroup 测试3、:heart:实战:在容器中使用CGroups4、:heart:实战:Namespaces测试参考文档需要注意的问题1.注意:kubepods.slice目录2.问题:cgroup和cgroup v2差别大吗?3.注意:容器的本质是宿主机上的一个进程。4.注意:宿主机上的容器都是共享宿主机的内核的。5.命令总结关于我总结 1、CGrou.

weixin_39246554的博客 745

Rasa Core开发指南

文章目录1. Rasa Core简介1.1 Rasa Core消息处理流程1.2 安装Rasa Core2. Dialogue模型训练2.1 Story样本数据2.2 Domain2.2.0 intents2.2.1 actions2.2.2 templates2.2.3 entities2.2.4 slots3 .训练和使用对话模型3.1 训练对话模型3.2 使用对话模型4. 搭建CustomA...

老蒋也疯狂 1万+

【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结

Kubernetes作为容器编排领域的行业标准,在过去一年里持续进化,深刻推动着云原生应用开发与部署模式的革新。本文我将深入总结在使用K8s特定技术领域的进展,分享在过去一年中相关技术工具及平台的使用体会,并展示基于K8s的技术项目实战经验与成果。

颜淡慕潇 1万+

保姆级教程:用Python仿真OFDM系统(附抗多径干扰优化方案)

本文提供了一份详细的Python仿真OFDM通信系统教程。通过NumPy和Matplotlib,从二进制比特流开始,逐步构建完整的OFDM系统模型,涵盖IFFT、循环前缀等核心概念。重点探讨了如何对抗多径干扰,并提供了优化方案,通过误码率曲线直观对比性能,适合通信工程学习和物理层开发实践。

weixin_29230649的博客 231

CUDA 12.1环境下的动态库链接修复:从libcusparse.so.12的undefined symbol错误到libnvJitLink.so.12的正确加载

本文详细解析了在CUDA 12.1环境下,PyTorch因libcusparse.so.12找不到libnvJitLink.so.12中的__nvJitLinkAddData_12_1符号而报错的根本原因。通过诊断动态链接过程,提供了创建符号链接、修改环境变量等三种解决方案,并深入探讨了nvJitLink组件的作用及环境配置的最佳实践,帮助开发者彻底解决此类动态库链接问题。

c8d9e0f1的博客 204

K8s实战:部署高可用Kubernetes集群(多节点)

深入理解部署高可用Kubernetes集群(多节点)的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最佳实践。本文属于《云原生、云边端一体化与算力基建:AI时代基础设施革命教程》云原生实战篇(第三阶段)。

输出倒逼输入,写作驱动成长。 1万+

TEM图像处理实战指南:从基础操作到金属材料分析

本文提供了一份全面的透射电镜(TEM)图像处理实战指南,涵盖从基础操作到金属材料深度分析的全流程。重点讲解了TEM图像预处理、选区电子衍射(SAED)标定、高分辨像(HRTEM)分析及STEM图像应用等核心技能,并结合金属材料(如铝合金、钢)的析出相鉴定、位错分析和界面结构研究等实际案例,帮助研究者从原始数据中准确提取晶体结构、缺陷及成分信息。

weixin_29284201的博客 208

【kubernetes】探索k8s集群中kubectl的陈述式资源管理

k8s中文文档:http://docs.kubernetes.org.cn/683.html。

YCyjs的博客 1187

飞牛NAS打造成童年经典游戏机

这篇文章介绍如何使用飞牛NAS搭建经典游戏模拟器。首先需开启Docker并下载RetroArch-web镜像,随后创建容器并设置端口映射。启动后上传游戏ROM文件(如NES格式),在模拟器中加载即可游玩。文章以修改版坦克大战为例,详细说明按键配置方法。同时还提到公网访问需配置DDNS或使用ZeroTier内网穿透。通过这套方案,用户可以在NAS上重温红白机等经典游戏体验。

dgnankai的专栏 882

看懂 SAP S/4HANA 产品主数据里的 GTIN:一串号码背后的全球商品识别与业务协同

SAP S/4HANA中的GTIN管理是企业供应链运营的关键环节。本文深入解析GTIN的业务内涵及其在SAP系统中的实现方式:1) GTIN是全球通用的商品标识码,不同于企业内部物料编码;2) SAP主数据中GTIN与计量单位强绑定,需为不同包装层级维护独立GTIN;3) 同一产品可能因渠道、供应商差异存在多个GTIN;4) GTIN贯穿零售POS、仓储管理、EDI订单等核心业务流程;5) 通过典型案例说明错误维护GTIN将导致收银异常、仓库作业低效等运营问题。文章强调GTIN管理需结合包装层级、计量单位等

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1432

【Kubernetes】k8s集群中kubectl的陈述式资源管理

书籍是糊口的加速器

F12138X的博客 1557

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6275

【kubernetes】关于k8s集群中kubectl的陈述式资源管理

nodePort:NodePort类型的service使用的端口,会在每个node节点上都开启相同的端口,也就是nodeIP使用的端口(默认范围为30000~32767)。2.kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。例如,DESIRED 为 10,那么可用的副本数至少要为 10 - 10 * 25% = 8,即 AVAILABLE 为 8。

liu_xueyin的博客 1461

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Kubernetes集群搭建与资源管理

Kubernetes(简称K8s)作为当前最流行的容器编排平台,已经成为现代云原生应用部署和管理的标准。本文将全面介绍Kubernetes的基础知识、集群搭建过程以及资源管理方法,帮助读者从零开始构建和运维一个完整的Kubernetes环境。通过本文的详细介绍,我们学习了Kubernetes的核心概念、资源管理方法以及完整的集群搭建过程。从基础的资源操作命令到复杂的集群部署,再到应用生命周期管理和发布策略,Kubernetes为容器化应用提供了强大而灵活的管理能力。

m0_46460826的博客 653

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mcp-k8s:赋能智能化的Kubernetes资源管理

mcp-k8s:赋能智能化的Kubernetes资源管理 在云计算与容器技术日益普及的今天,Kubernetes已经成为管理和部署容器化应用的事实标准。然而,复杂的命令和资源配置文件常常让开发者和管理员感到困惑。mcp-k8s项目正是为了简化这一过程而诞生,它通过Model Control Protocol(MCP)提供了一种新的交互方式,让Kubernetes资源管理变得更加直观和高效。 项目介...

gitblog_00146的博客 1202

【kubernetes】认识K8S基础理论

K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。在 K8S 中,主节点一般被称为 Master 节点,而从节点则被称为 Worker Node 节点,每个 Node 都会被 Master 分配一些工作负载。Master 组件可以在群集中的任何计算机上运行,但建议 Master 节点占据一个独立的服务器。

liu_xueyin的博客 2452

云计算系列之Kubernetes(K8S)集群部署实战解析

Kubernetes用于自动部署、扩缩和管理容器化应用程序的开源系统。 Kubernetes简称为K8S或K8,是业界领先的容器编排解决方案。

sinat_30844883的博客 1727

Kubernetes(K8s)资源管理

本文介绍了Kubernetes(K8s)资源管理的关键概念和方法。K8s通过抽象资源(如Pod、控制器、Service等)实现集群管理,并提供三种资源操作方式:命令式对象管理(直接操作资源)、命令式对象配置(通过配置文件操作)和声明式对象配置(自动同步期望状态)。文章详细说明了kubectl命令行工具的使用方法,包括基础操作、资源更新、集群维护和故障排查等核心命令。同时介绍了命名空间的隔离作用及系统默认命名空间。建议开发/生产环境使用声明式对象配置方式,配合YAML配置文件实现高效管理。掌握这些基础概念和工

t_suifeng的博客 1171

k8s集群中kubectl的陈述式资源管理

4)配置kubectl自动补全。

2401_83330816的博客 938

【Kubernetes】k8s集群的pod基础

pod基础

weixin_68840588的博客 1048
上一篇: Kubernetes生产实践系列之二十九:Kubernetes基础技术之容器关键技术实践
下一篇: Kubernetes生产实践系列之三十一:Kubernetes基础技术之CPU资源的调度和管理(CFS)
cloudvtech
博客等级 码龄9年 533粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值