k8s-namespace

root
233
文章
0
评论
2021年8月7日22:34:40 评论 1770字阅读5分54秒

k8s-namespace

强制删除ns

kubectl get namespace monitor-sa -o json \
            | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
            | kubectl replace --raw /api/v1/namespaces/monitor-sa/finalize -f -

 

什么是命名空间?

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。

命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、production环境分别创建各自的命名空间。

namespace应用场景

命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间

删除namespace会同时删除对应ns下的所有资源

 

命名空间常用命令

#查看ns

[root@master01 test]# kubectl  get ns
NAME                   STATUS   AGE
default                Active   32h
kube-node-lease        Active   32h
kube-public            Active   32h
kube-system            Active   32h
kubernetes-dashboard   Active   32h

#使用kubectl describe namespace $NAME可以查看特定的名称空间的详细信息。

[root@master01 ~]# kubectl describe  ns kube-system 
Name:         kube-system
Labels:       kubernetes.io/metadata.name=kube-system
Annotations:  <none>
Status:       Active

#创建ns

[root@master01 test]# kubectl create ns hwf
namespace/hwf created

#删除ns

[root@master01 ~]# kubectl delete ns hwf
namespace "hwf" deleted

#切换命名空间

[root@master01 ~]#  kubectl  config set-context --current --namespace=default 
Context "kubernetes-admin@kubernetes" modified.

[root@master01 ~]# kubectl get pod
NAME      READY   STATUS    RESTARTS   AGE
busybox   1/1     Running   0          32h

#查看哪些资源属于命名空间级别的[就是需要指定ns的有哪些]

[root@master01 ~]# kubectl api-resources --namespaced=true

 

namespace资源限额

namespace是命名空间,里面有很多资源,那么我们可以对命名空间资源做个限制,防止该命名空间部署的资源超过限制。

如何对namespace资源做限额呢?【ns指定命名空间资源限额yaml】

[root@master1~]# vim namespace-quota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
     name: mem-cpu-quota
     namespace: test
spec:
     hwf:
         requests.cpu: "2"              #在hwf命名空间下,请求创建的pod总共资源不能超过cpu2核
         requests.memory: 2Gi      #在hwf命名空间下,请求创建的pod总共资源不能超过内存2G
         limits.cpu: "4"                   #在hwf命名空间下,所有创建的pod总共资源不能超过cpu4核
         limits.memory: 4Gi           #在hwf命名空间下,所有创建的pod总共资源不能超过内存4G

这是一个简单的ResourceQuota类型,也就是针对Namespace的配额。它会针对Namespace做如下限额:

  • 所有 CPU Requests 的总和不能超过 2 个内核
  • 所有 RAM Requests 的总和不能超过 2GiB
  • 所有 CPU Limits 的总和不能超过 4个内核
  • 所有 RAM Limits 的总和不能超过 4GiB

 

 

 

 

 

 

 

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年8月7日22:34:40
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
k8s-Service Account Kubernetes

k8s-Service Account

k8s-Service Account的授权管理 Service Account也是一种账号,是给运行在Pod里的进程提供了必要的身份证明。需要在Pod定义中指明引用的Service Account,...
k8s-RBAC Kubernetes

k8s-RBAC

k8s-RBAC认证授权策略 RBAC介绍 在Kubernetes中,所有资源对象都是通过API进行操作,他们保存在etcd里。而对etcd的操作我们需要通过访问 kube-apiserver 来实现...
k8s-Secret Kubernetes

k8s-Secret

配置管理中心Secret Secret是什么? Configmap一般是用来存放明文数据的,如配置文件,对于一些敏感数据,如密码、私钥等数据时,要用secret类型 Secret解决了密码、token...
匿名

发表评论

匿名网友 填写信息

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