namespace概念及常用操作
什么是namespace
k8s将资源对象逻辑上隔离,从而形成多个虚拟集群.
应用场景
每个单独的项目建议单独创建一个namespace.
- 根据不同团队划分namespace
- 根据项目划分namespace
- 可以对namespace权限进行划分.用户只能查看自己的空间
新建namespace
# 新建namespace
kubectl create ns blog
查看namespace
[root@master ~]# kubectl get ns
NAME STATUS AGE
default Active 19h
kube-node-lease Active 19h
kube-public Active 19h
kube-system Active 19h
kubernetes-dashboard Active 15h
blog Active 15h
内置的namespace
default # 默认的namespace
kube-node-lease # k8s内部namespace
kube-public # 公开的namespace
kube-system # k8s系统方面的namespace
kubernetes-dashboard # dashaboard使用的namespace
blog # 用户自行创建的blog
两种指定资源namespace的方法
- 命令行加 -n namespace名称
- yaml资源元数据里指定namespace字段
命名空间资源配额
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-demo
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
创建 ResourceQuota(资源配额)
kubectl apply -f https://k8s.io/examples/admin/resource/quota-mem-cpu.yaml --namespace=quota-mem-cpu-example
# 查看 ResourceQuota 详情
kubectl get resourcequota mem-cpu-demo --namespace=quota-mem-cpu-example --output=yaml
使用kubens切换所在命名空间
kubens
命令是第三方命令,需要自行安装
参考: https://www.cnblogs.com/doom990127/p/15193651.html
安装kubens命令
kubens
项目地址: https://github.com/ahmetb/kubectx
# 下载kubens命令行
wget https://github.com/ahmetb/kubectx/releases/download/v0.9.5/kubens_v0.9.5_linux_x86_64.tar.gz
# 解压到 /usr/local/bin/
tar xvf kubens_v0.9.5_linux_x86_64.tar.gz -C /usr/local/bin
# 移动到/usr/local/bin
# mv kubens /usr/local/bin
# 赋予可执行权限
chmod +x /usr/local/bin/kubens
# 查看命令是否启用了
which kubens
kubens切换命名空间
#查看当前所在NS
kubens
#切换所在NS
kunens 空间名
# 切换上一次所在NS
kubens -
下图高亮
是当前所在ns