k8s namespace限制调研
1.创建namespace gpu
2.增加限制
[root@tensorflow1 gpu-namespace]# cat compute-resources.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
namespace: gpu
spec:
hard:
pods: "5"
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
[root@tensorflow1 gpu-namespace]# kubectl describe namespace gpu
Name: gpu
Labels: <none>
Annotations: <none>
Status: Active
Resource Quotas
Name: compute-resources
Resource Used Hard
-------- --- ---
limits.cpu 0 2
limits.memory 0 2Gi
pods 4 5
requests.cpu 0 1
requests.memory 0 1Gi
No resource limits.
3.检查限制情况
在已经创建好容器的情况下再增加限制,发现限 制并没有起作用,预期是memory限制到2g,结果是 从容器内仍然能看到8g内存
容器内:
root@tensorflow-ps-rc-cm9c8:/notebooks# free -m
total used free shared buff/cache available
Mem: 7783 1615 274 251 5893 5383
Swap: 0 0 0
宿主机:
[root@tensorflow0 ~]# free -m
total used free shared buff/cache available
Mem: 7783 1616 272 251 5894 5382
Swap: 0 0 0
4.杀掉容器
容器启动失败,要求对容器添加限制
[root@tensorflow1 gpu-namespace]# kubectl describe rc/tensorflow-ps-rc -n gpu
...
Warning FailedCreate 2m replication-controller Error creating: pods "tensorflow-ps-rc-jrxxl" is forbidden: failed quota: compute-resources: must specify limits.cpu,limits.memory,requests.cpu,requests.memory
Warning FailedCreate 23s (x9 over 2m) replication-controller (combined from similar events): Error creating: pods "tensorflow-ps-rc-sw9wx" is forbidden: failed quota: compute-resources: must specify limits.cpu,limits.memory,requests.cpu,requests.memory
5.配置好限制,重启启动
增加配置:
resources:
requests:
memory: "1024Mi"
cpu: "250m"
limits:
memory: "1024Mi"
cpu: "500m"
只启动了一个[root@tensorflow1 tf_gpu]# kubectl get all -o wide -n gpu
NAME READY STATUS RESTARTS AGE IP NODE
po/tensorflow-ps-rc-9m8zj 1/1 Running 0 1h 10.244.2.91 tensorflow0
po/tensorflow-worker-rc-5zq9q 1/1 Running 0 11d 10.244.2.61 tensorflow0
po/tensorflow-worker-rc-mhncr 1/1 Running 0 11d 10.244.1.87 tensorflow2
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
rc/tensorflow-ps-rc 2 1 1 1h ps nfs:5000/tensorflow/tensorflow:nightly name=tensorflow-ps
rc/tensorflow-worker-rc 2 2 2 11d worker nfs:5000/tensorflow/tensorflow:nightly-gpu name=tensorflow-worker
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/tensorflow-ps-service ClusterIP 10.99.156.187 <none> 2222/TCP 11d name=tensorflow-ps
svc/tensorflow-wk-service ClusterIP 10.102.251.161 <none> 2222/TCP 11d name=tensorflow-worker
第二个不满足条件了
[root@tensorflow1 tf_gpu]# kubectl describe namespace gpu
Name: gpu
Labels: <none>
Annotations: <none>
Status: Active
Resource Quotas
Name: compute-resources
Resource Used Hard
-------- --- ---
limits.cpu 500m 2
limits.memory 1Gi 2Gi
pods 3 5
requests.cpu 250m 1
requests.memory 1Gi 1Gi
No resource limits.
[root@tensorflow1 tf_gpu]# kubectl describe rc/tensorflow-ps-rc -n gpu
Warning FailedCreate 3m replication-controller Error creating: pods "tensorflow-ps-rc-cbt6c" is forbidden: exceeded quota: compute-resources, requested: requests.memory=1Gi, used: requests.memory=1Gi, limited: requests.memory=1Gi
6.进入启动成功的那个容器
宿主机内存
[root@tensorflow0 ~]# free -m
total used free shared buff/cache available
Mem: 7783 1433 450 251 5899 5567
Swap: 0 0 0
容器内存,与外面看到的一致。
root@tensorflow-ps-rc-9m8zj:/notebooks# free -m
total used free shared buff/cache available
Mem: 7783 1433 450 251 5899 5567
Swap: 0 0 0
虽然限制了1G内存,但是仍能看到8G内存
本文转自CSDN-k8s namespace限制调研
k8s namespace限制调研的更多相关文章
- k8s namespace/volume
https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ 只挑个人感觉使用较多/比较重要的点来说 ...
- k8s namespace权限问题无法读取configmap
报错信息: Message: Forbidden!Configured service account doesn't have access. Service account may have be ...
- 记一次删除k8s namespace无法删除的问题
在用longhorn工具做k8s存储卷动态预配的时候,需要修改longhorn.yaml的一个默认参数,修改完成需要重新加载longhorn.yaml,结果重新加载出错了,修改的参数没有生效,于是执行 ...
- k8s部署prometheus
https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content ...
- spring-cloud-kubernetes服务发现之在k8s环境下开发spring cloud应用
通常情况下,我们的线上的服务在迁移到k8s环境下的时候,都是采用平滑迁移的方案.服务治理与注册中心等都是采用原先的组件.比如spring cloud应用,在k8s环境下还是用原来的一套注册中心(如eu ...
- K8s小白?应用部署太难?看这篇就够了!
在云原生趋势下,容器和 Kubernetes 可谓是家喻户晓,许多企业内部的研发团队都在使用 Kubernetes 打造 DevOps 平台.从最早的容器概念到 Kubernetes 再到 DevOp ...
- kubernetes之监控Operator部署Prometheus(三)
第一章和第二章中我们配置Prometheus的成本非常高,而且也非常麻烦.但是我们要考虑Prometheus.AlertManager 这些组件服务本身的高可用的话,成本就更高了,当然我们也完全可以用 ...
- docker运行php网站程序
有一个之前的php网站程序需要迁移到K8S,简单调研了下. 基础镜像 官方提供了诸如php:7.1-apache的基础镜像,但是确认必要的扩展,例如gd,当然官方提供了docker-php-ext-i ...
- 附006.Kubernetes RBAC授权
一 RBAC 1.1 RBAC授权 基于角色的访问控制(RBAC)是一种基于个人用户的角色来管理对计算机或网络资源的访问的方法. RBAC使用rbac.authorization.k8s.io API ...
随机推荐
- Java基础知识3-类和对象(1)
面向过程和面向对象的区别 面向过程(结构化程序设计) 实际上是一个面向操作过程,首先设计一系列过程(算法)来求解问题(操作数据),然后再考虑存储数据的方式(组织数据).即程序=算法\+数据结构.对应典 ...
- SpringMVC(一):简介和第一个程序
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...
- 下载安装配置 Scala-2.12.11
文章更新于:2020-03-24 安装惯例,文件附上链接放在文首. 文件名:scala-2.12.11.tgz 文件大小:19.83 MB 下载链接:https://downloads.lightbe ...
- 【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)
py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...
- JAVA中的==和queals()的区别
一.先来说说Java的基本数据类型和引用类型 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char,其中占一个字节的是byte,short和ch ...
- python 删除三天前的日志.py
#获取所有文件def file(): for cur_dir, dirs, files in os.walk(r'/学习/接口自动化/BestTest/作业/logs'): # cur_dir(当前路 ...
- intellJ svn控制错误
电脑突然蓝屏了,重启打开intellj 后原本好好的项目是可以用intellj更新或者提交的,现在却都不能了,如图: 如上图:svn地址里是空白的,应该显示: 那到底是什么情况呢,就因为电脑崩溃了in ...
- 大佬整理出来的干货:LDA模型实现—Python文本挖掘
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...
- Sprint 3 : oxford project API 尝试
本次Sprint我们大家主要在调研和尝试阶段,主要是对photo experience 中的语音接口部分进行相应的调研和分析. 工作进度: 1. 图像界面设计兆阳和敏龙的工作进一步推进,除去之前介绍的 ...
- 利用Putty建立SSH的tunnels访问内网资源
适用场景访问阿里或者腾讯云只针对内网开放的资源. 本文以SQLSERVER 举例 举例你的内网 SQLSERVER的访问地址是192.168.33.88 . 你的Microsoft SQL Serve ...