swarm资源限制

avatar 2023年4月26日18:04:04 评论 277 次浏览

swarm的资源限制和kubernetes的资源限制一样,分别使用--reserve和--limit对容器资源进行限制,也可以理解为最大最小,而--reserve可以理解为最小范围,初始资源大小,而--limit可以理解为最大资源范围,两者可以同事使用,也可以分别使用。根据环境实际使用情况,酌情选择。

 [wolf@wulaoer.org 🔥🔥🔥🔥 ~ ]$ docker service  create --name redis --publish 6379:6379 -e TZ=Asia/Shanghai --mount type=volume,source=redis,destination=/data --config src=redis_conf,target=/etc/redis/redis.conf --network xn_net --with-registry-auth --reserve-cpu 1 --reserve-memory 2G  redis:6.0.9 redis-server /etc/redis/redis.conf

这里使用创建一个redis服务,然后使用--reserve配置一个预定资源,但是创建成功后发现,资源不够怎么办,可以通过更新去掉--reserve改成--limit。因为习惯里k8s的用法,所以不太喜欢设置最小值,直接定义一个最大值,我比较习惯使用--reserve

 [wolf@wulaoer.org 🔥🔥🔥🔥 ~ ]$ docker service  create --name redis --publish 6379:6379 -e TZ=Asia/Shanghai --mount type=volume,source=redis,destination=/data --config src=redis_conf,target=/etc/redis/redis.conf --network xn_net --with-registry-auth --limit-cpu 1 --limit-memory 2G  redis:6.0.9 redis-server /etc/redis/redis.conf

这样做的好处可以根据不同的资源限定资源,方便后期更新或者伸缩的资源预算。如果创建后资源不够也可以进行更新。

 [wolf@wulaoer.org 🔥🔥🔥🔥 ~ ]$ docker service create --name redis --publish 6379:6379 -e TZ=Asia/Shanghai --mount type=volume,source=redis,destination=/data --config src=redis_conf,target=/etc/redis/redis.conf --network xn_net --with-registry-auth --reserve-cpu 1 --reserve-memory 2G --limit-memory 4096M --limit-cpu 2 redis:6.0.9 redis-server /etc/redis/redis.conf

这里注意,内存的单位,必须有单位,可以使用M也可以使用G,cpu就是核,上面是做了最大最小的限制,如果不小要初始值可以更新的时候删除掉。

 [wolf@wulaoer.org 🔥🔥🔥🔥 ~ ]$ docker service update --limit-cpu 5 --limit-memory 4G redis
 [wolf@wulaoer.org 🔥🔥🔥🔥 ~ ]$ docker service update --limit-cpu 4 --limit-memory 5G redis

这里注意如果创建的时候有--reserve在更新内存的时候不能低于--reserve设置的范围,并且在update中没有--reserve这个删除,所以这里需要注意。并且在设置资源时一定要保证服务可以启动起来,要不资源太小服务就会一直重启。

avatar
  • 未经博主允许,禁止转载本博客任何内容,如需转载请留言,谢谢合作!!!
  • 转载注明:swarm资源限制 | 吴老二

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: