k8s namespace/volume
https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
只挑个人感觉使用较多/比较重要的点来说
namespace
Create a namespace so that the resources you create in this exercise are isolated from the rest of your cluster.
和Linux的namespace是类似的,做一个隔离的作用;可以将pod的资源和集群其他资源做隔离
可以使用下面方式创建namespace
# 创建namespace
kubectl create namespace mem-example
# 在pod的yaml文件里,可以配置memory和cpu的资源闲置
# limits代表上限 requests代表下限
pods/resource/memory-request-limit.yaml
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: mem-example
spec:
containers:
- name: memory-demo-ctr
image: polinux/stress
resources:
limits:
memory: "200Mi"
requests:
memory: "100Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
# 可以创建pod
kubectl create -f a.yaml --namespace=mem-example
# 启动后,可以使用下面方式查看是否启动
kubectl get pod memory-demo --namespace=mem-example
# 使用yaml格式查看详细信息
kubectl get pod memory-demo --output=yaml --namespace=mem-example
# 删除pod
kubectl delete pod memory-demo --namespace=mem-example
还存在设置的资源限制大于Node资源的情况,以及资源超出限制的情况,具体参照官网
另外,对CPU的限制设置方式和memory相似,不作赘述
volume
可以创建一个将 /data/redis 目录挂载到 emptyDir 的pod作为实例;emptyDir是一个伴随着pod创建而建立的一个目录,即使pod重启也不会影响其数据,但当pod被delete之后,其内容就消失了。
实例过程如下:
# 根据下列配置文件创建一个pod
pods/storage/redis.yaml
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
# 启动pod
kubectl create -f redis.yaml
# 使用下列命令监控pod的变化
kubectl get pod --watch
# 进入pod,在 /data/redis 目录下创建一个文件
kubect exec -it redis -- /bin/bash
cd /data/redis
echo Hi > hel.txt
# 重启容器,再此进入之前的目录,会发现文件还在,内容没变
# 重启的方式可以是在pod中kill掉对应的redis服务的进程
# 通过 --watch 命令可以检测到对应pod的状态的变化
当然,也可以挂载到对应主机目录上,配置文件如下
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /data
# this field is optional
type: Directory
注意:
单机部署时可以使用hostpath,但是集群的话不应该再使用hostpath
k8s namespace/volume的更多相关文章
- 容器编排系统K8s之Volume的基础使用
前文我们聊到了k8s上的ingress资源相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14167581.html:今天们来聊一下k8s上volum ...
- k8s之volume
pause容器为基础架构容器,每一个节点都有一个pause镜像, 为每一个pod提供底层基础支撑设备,所有pod中容器会共享此容器的网络空间,存储卷也是 还可使用csi,存储插件. 使用存储卷步骤1. ...
- k8s namespace权限问题无法读取configmap
报错信息: Message: Forbidden!Configured service account doesn't have access. Service account may have be ...
- k8s local volume 和host path volume的区别
k8s提供多种volume接口,其中local 和host path是容易混淆的两个接口.下面这篇文章解释了两者的区别: https://groups.google.com/forum/#!topic ...
- 6.k8s.存储Volume.PV.PVC
#Volume Volume 解决数据持久化和容器间共享数据 Kubernetes支持几十种类型的后端存储卷 #hostPath挂载实例,挂载Node节点/tmp/test-volume目录到容器/t ...
- Kubernetes --(k8s)volume 数据管理
容器的磁盘的生命周期是短暂的,这就带来了许多问题:第一:当一个容器损坏了,kubelet会重启这个容器,但是数据会随着container的死亡而丢失:第二:当很多容器在同一Pod中运行的时候,经常需要 ...
- 记一次删除k8s namespace无法删除的问题
在用longhorn工具做k8s存储卷动态预配的时候,需要修改longhorn.yaml的一个默认参数,修改完成需要重新加载longhorn.yaml,结果重新加载出错了,修改的参数没有生效,于是执行 ...
- k8s namespace限制调研
1.创建namespace gpu 2.增加限制 [root@tensorflow1 gpu-namespace]# cat compute-resources.yaml apiVersion: v1 ...
- k8s volume
只有nfs和rbd的,本人翻译确实很渣 在容器中磁盘文件寿命是短暂的,当在容器中运行一些重要程序时,这会产生一些问题. 首先,当一个容器崩溃后,kubelet将重新启动该容器, ...
随机推荐
- 事务(transaction )
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 事务是恢复和并发控制的基本单位. 事务有4个特性:原子性.一致性.隔离性.持久性.(即ACID) 原子 ...
- 【整理】Java 11新特性总结
闲语 2018年9月25日,Java 11正式发布,与JDK 10不同,JDK 11将提供长期支持,还将作为Java平台的参考实现以及标准版(Java SE)11.Oracle直到2023年9月都会为 ...
- [COCI2013]DLAKAVAC
[COCI2013]DLAKAVAC 题目大意: 有一个长度为\(m(m\le1500)\)的\(01\)串\(A\),进行\(k(k\le10^{18})\)次操作.一次操作完的串中若\(A_i=1 ...
- idea下的new class找不到了
https://blog.csdn.net/iteye_3381/article/details/82672788
- Unity安装破解
最近,电脑重新安装的系统,然后的然后就是软件之类的都要重新安装 一.在unity官网下载对应版本对应系统,之后双击下载得到的.exe可执行文件. 二.选择对应的包和引擎安装的本地路径,等待安装完成. ...
- Codeforces Round #443 (Div. 1) B. Teams Formation
B. Teams Formation link http://codeforces.com/contest/878/problem/B describe This time the Berland T ...
- Oracle中 (+)与left join 的用法区别
Oracle中 (+)与left join 的用法区别 原创 2017年01月11日 13:33:42 6648 select * from a,b where a.id=b.id(+); (+)写在 ...
- 5、python的变量和常量
今天看看python的变量和常量,这是python中最基本的两个概念. 首先先说一下解释器执行Python的过程: python3 C:\test.py 1. 启动python解释器(内存中) ...
- Git 和 Repo常用命令
这篇博客总结的也不错: git常用及进阶命令总结 Git与Repo入门 一.初始環境配置 git config --global user.name "John Doe"git c ...
- 咏南DELPHI7中间件+开发框架
咏南DELPHI7中间件+开发框架 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmain.exe ...