首页 > 系统相关 >如何为swarm中的service设置需要cpu和内存?

如何为swarm中的service设置需要cpu和内存?

时间:2022-09-21 11:12:35浏览次数:74  
标签:node service nginx -- swarm 内存 cpu


想象一下这个场景,你有一个服务,想要最好的运行状态,必须需要一定的CPU和内存的数量,这样的场景,如何在service中进行设置?

 

也就是说,为service设置一个cpu和内存的值,swarm集群中的节点,只有满足这个要求的才能运行这个task。

 

参数

 

设置的方法,非常的简单,在创建service的时候,通过下面的参数指定cpu和内存的需求值:

 

--reserve-memory 
--reserve-cpu

 

示例:有满足资源需求的节点

 

来看个例子,运行一个nginx的service,cpu要求2核,内存512M

 

docker service create \
  --with-registry-auth \
  --name=nginx \
  --replicas=3 \
  --reserve-memory=512M \
  --reserve-cpu=2 \
  --publish published=8080,target=80 \
  172.20.58.152/middleware/nginx:1.21.4

 

 

部署过程及service运行状态

[root@nccztsjb-node-01 ~]# docker service create \
>   --with-registry-auth \
>   --name=nginx \
>   --replicas=3 \
>   --reserve-memory=512M \
>   --reserve-cpu=2 \
>   --publish published=8080,target=80 \
>   172.20.58.152/middleware/nginx:1.21.4
rd9svjyzuopxzt6954lsxs6il
overall progress: 3 out of 3 tasks 
1/3: running   [==================================================>] 
2/3: running   [==================================================>] 
3/3: running   [==================================================>] 
verify: Service converged 
[root@nccztsjb-node-01 ~]# 


[root@nccztsjb-node-01 ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                                   PORTS
rd9svjyzuopx   nginx     replicated   3/3        172.20.58.152/middleware/nginx:1.21.4   *:8080->80/tcp
[root@nccztsjb-node-01 ~]# docker service ps nginx
ID             NAME      IMAGE                                   NODE               DESIRED STATE   CURRENT STATE                ERROR     PORTS
2nrgamav1lpe   nginx.1   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-02   Running         Running about a minute ago             
2e341d756d06   nginx.2   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-01   Running         Running about a minute ago             
sz1earbc8c2e   nginx.3   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-05   Running         Running about a minute ago             
[root@nccztsjb-node-01 ~]# 

 

 

查看service的详细信息,在Resources中,保留的CPU是2,内存:512MiB

 

 

这个例子是,swarm集群节点中的资源满足service的要求,如果没有节点满足这个要求,service的状态会怎么样,看下面的例子······

 

示例:节点资源不满足service资源需求

 

主机是8c,16g,但是创建service的时候,指定需要9c

 

docker service create \
  --with-registry-auth \
  --name=nginx \
  --replicas=3 \
  --reserve-memory=512M \
  --reserve-cpu=9 \
  --publish published=8080,target=80 \
  172.20.58.152/middleware/nginx:1.21.4

 

 

部署时,会显示:no suitable node (insufficient resources on 4 nodes)

 

由于不满足资源的要求,在集群的4个节点上,都不适合运行这些task,所以,部署失败了!

 

以上,简单说明了下,service在创建时设置的资源的要求,但是下面的问题,你还需要考虑:

 

1、节点上已经运行task,占用内存之后,就剩512M,但是主机是16G,此时申请4G的service,可否被调度到这个节点上面?

 

2、service是否可以设置内存、内存使用的最大值?如何设置?

 

 

标签:node,service,nginx,--,swarm,内存,cpu
From: https://www.cnblogs.com/chuanzhang053/p/16714877.html

相关文章

  • 并发原理 — CPU原子性指令(一)
    本篇文章将以IntelCPU作为讨论基础一、并发的由来一台计算机有2个cpu,其中CPU1执行程序A,CPU2执行程序B,由于程序A和程序B是两个不同的应用程序,所以它们两个之间并不存在......
  • 如何将swarm中的service的端口暴露出去?
    将swarm中的service端口暴露出去,供集群外的服务进行访问的2种方法: 1、路由网格 也就是在dockercreateservice时,使用下面的参数 --publishpublished=<publi......
  • 中断设置cpu亲和性代码编写
    Linux中描述中断控制器的数据结构是struct irq_chip,因为不同芯片的中断控制器对其挂接的IRQ有不同的控制方法,因而这个结构体主要是由一组用于回调(callback),指向系统实际......
  • Linux系列---【如何解决cpu飙高问题?】
    1.使用top命令打开dashboard,如下图2.经过上图中4步之后,可以得到十六进制9847的进程号,然后到a.txt文件中查找即可定位到对应的线程。3.如过找不到,按shift+h查找出哪个线......
  • Linux系列---【如何查看cpu是几核的?】
    1.方式一通过top命令,按1查看,有几个就就是几核。  2.方式二cat/proc/cpuinfo ......
  • 2022-09-19 Error: Cannot find module '项目\node_modules\@vue\cli-service\bin
    前言:wepy项目迁移uniapp使用wepy-to-uniapp转换代码后初始化依赖抛出的错误:Error:Cannotfindmodule'项目\node_modules\@vue\cli-service\bin\vue-cli-service.js'网......
  • 为什么swarm节点中运行容器的镜像,无法查看到的tag信息?
    最近今天,在研究dockerswarm中服务的部署,发现一个非常奇怪的现象······ 通过dockerservicecreate命令创建service,比如: dockerservicecreate\--with-......
  • Microservices 微服务
    什么是微服务体系结构?正如名称所示,微服务体系结构是一种将大型应用程序分解为一组较小的服务的方法。每个服务都在自己的进程中运行,并使用HTTP/HTTPS、WebSocket或AMQ......
  • 如何设置service中容器的运行环境?环境变量、用户、工作目录?
    0、导语 今天的文章呢,主要为你解决3个问题: 1、如何为service中运行的容器设置环境变量?2、如何指定容器以什么用户执行?3、容器的工作目录(workdir)? 下面咱们一......
  • k8s service
    目录k8sserviceService作用为什么要引入ServiceService需要注意的点Service的作用和原理k8sserviceService作用Service的核心作用就是为Pod提供稳定的网络连接。除此......