K8s新手系列之namespace

打印 上一主题 下一主题

主题 1831|帖子 1831|积分 5493

概述

官方文档地址:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/namespaces/
namespace是K8s系统中的一种非常重要的资源,它的重要作用是用来实现多套环境的资源隔离大概多租户的资源隔离
默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,大概不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod分别到差别的namespace下。kubernetes通过将集群内部的资源分配到差别的Namespace中,可以形成逻辑上的"组",以方便差别的组的资源进行隔离使用和管理。
可以通过kubernetes的授权机制,将差别的namespace交给差别租户进行管理,如许就实现了多租户的资源隔离。此时还能联合kubernetes的资源配额机制,限定差别租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理。

对于资源隔离,有的资源支持名称空间的,我们称之为局部资源。比如: po,svc,rc,...
而对于不支持名称空间的,我们称之为全局(集群)资源。比如: cs,no,ns...
查看K8s中哪些资源是否支持namespace

通过kubectl api-resources字段来查看。如下图:
可以查看NAMESPACED字段,当NAMESPACED为true时,则对应的该资源支持名称空间,称为局部资源;为false时则不支持名称空间,称为全局资源。

查看namespace
  1. # 查看所有的namespace
  2. [root@master01 ~]# kubectl get namespace
  3. NAME               STATUS   AGE
  4. calico-apiserver   Active   6d6h
  5. calico-system      Active   6d6h
  6. default            Active   6d6h
  7. kube-node-lease    Active   6d6h
  8. kube-public        Active   6d6h
  9. kube-system        Active   6d6h
  10. tigera-operator    Active   6d6h
复制代码
初始状态下,Kubernetes 具有四个namespace:

  • default:默认的namespace,创建的资源未指定namespace时就在default空间下
  • kube-node-lease 此namespace保存与每个节点关联的租约(Lease)对象。 节点租约允许 kubelet 发送心跳, 以便控制平面可以检测节点故障。
  • kube-public 自动创建且被所有效户可读的namespace(包括未经身份认证的)。 此namespace通常在某些资源在整个集群中可见且可公开读取时被集群使用。 此namespace的公共方面只是一个约定,而不是一个须要条件。
  • kube-system 由 Kubernetes 系统创建的对象的namespace
创建namespace

避免使用前缀 kube- 创建namespace,因为它是为 Kubernetes 系统namespace保留的。
通过资源清单创建namespace
  1. # 创建资源清单
  2. [root@master01 ~/namespace]# cat dev.yaml
  3. apiVersion: v1
  4. kind: Namespace
  5. metadata:
  6.     name: dev
  7. # 创建namespace
  8. [root@master01 ~/namespace]# kubectl apply -f dev.yaml
  9. namespace/dev created
  10. # 查看namespace
  11. [root@master01 ~/namespace]# kubectl get namespace dev
  12. NAME   STATUS   AGE
  13. dev    Active   11s
复制代码
通过命令创建namespace

语法:
  1. kubectl create namespace <namespace-name>
复制代码
示例:
  1. # 创建名称为sit的namespace[root@master01 ~/namespace]# kubectl create namespace <namespace-name>sitnamespace/sit created# 验证是否创建乐成[root@master01 ~/namespace]# kubectl get namespace sitNAME   STATUS   AGEsit    Active   13s
复制代码
删除namespace

删除namespace时会删除namespace下的所有内容!一般不建议删除namespace。
删除namespace是异步的,以是有一段时间你会看到namespace处于 Terminating 状态。
语法:
  1. kubectl delete namespaces <namespace-name>
复制代码
示例:
  1. # 删除sit的namespace
  2. [root@master01 ~/namespace]# kubectl delete namespace sit
  3. namespace "sit" deleted
  4. # 验证是否删除成功
  5. [root@master01 ~/namespace]# kubectl get namespace sit
  6. Error from server (NotFound): namespaces "sit" not found
复制代码
创建K8s资源在指定的namespace

创建局部资源时(例如Pod、ConfigMap...)可以在metadata.namespace指定该资源属于哪一个namespace。
示例:
  1. # 定义资源清单
  2. [root@master01 ~/namespace]# cat namespace-pod.yaml
  3. # 创建namespace
  4. apiVersion: v1
  5. kind: Namespace
  6. metadata:
  7.     name: sit-pod
  8. ---
  9. # 创建Pod
  10. apiVersion: v1
  11. kind: Pod
  12. metadata:
  13.   name: namespace-pod
  14.   # 指定所属的名称空间
  15.   namespace: sit-pod
  16. spec:
  17.   containers:
  18.   - name: container-nginx
  19.     image: nginx:latest
  20. # 创建namespace和对应的Pod
  21. [root@master01 ~/namespace]# kubectl apply -f namespace-pod.yaml
  22. namespace/sit-pod created
  23. pod/namespace-pod created
  24. # 查看namespace
  25. [root@master01 ~/namespace]# kubectl get namespace sit-pod
  26. NAME      STATUS   AGE
  27. sit-pod   Active   49s
  28. # 查看sit-pod下的Pod
  29. [root@master01 ~/namespace]# kubectl get po -n sit-pod
  30. NAME            READY   STATUS    RESTARTS   AGE
  31. namespace-pod   1/1     Running   0          65s
复制代码
查看指定namespace下的K8s资源

如果不指定namespace时,默认查看的是default空间下对应的资源
查看指定namespace下所有的资源

语法:
  1. kubectl get all -n <namespace-name>
复制代码
查看所有namespace下指定的资源

语法:
  1. kubectl get <resource-type> --all-namepsace
  2. # 或者
  3. kubectl get <resource-type> -A
复制代码
查看指定namespace下指定的资源

语法:
  1. kubectl get <resource-type> -n <namespace-name>
复制代码
总结

整体来说,在生产环境中查看资源的相关信息时,可以通过-n选项指定对应的namespace

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表