k8s学习笔记-05(命名空间)

原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com

概述

k8s中资源通过命名空间进行资源与资源间的隔离。不同的命名空间中的资源相互独立。可以理解为租户。k8s安装完成过后默认自带四个命名空间:default、kube-node-lease、kube-pubic、kube-system。

namespace是通过上下文控制的,切换上下文即可以完成对应配置的改变。

命名空间说明:

  • default: 默认的namespace名,k8s环境安装完成后初始默认设置即为default命名空间。
  • kube-node-lease:k8s中用来维护集群心跳状态的命名空间。
  • kube-public:k8s中公用的命名空间,该空间下的资源可以被所有人访问,包括匿名账户、未制定用户。
  • kube-system:k8s系统资源命名空间,k8s集群相关的资源均放在这个目录中,一般情况下不要在这个命名空间中增删资源。

常用命令

查看ns

查看当前环境中有多少个ns,只有管理员或授权的用户可以看到集群环境完全的namespace。 

# kubectl get ns --show-labels
# kubectl get ns

创建ns

namespace创建完成后,结合授权把新创建的命名空间授权给制定的用户,实现用户和资源的绑定。

# kubectl create  ns   <new_namespace_name>

 绑定namespace和用户。

 

删除ns

ns中有资源无法删除namespace,需要把namespace中的资源删除完成过后才能完成namespace的删除,删除ns中的资源的动作一般是自动的,状态为Terminating。

# kubectl delete ns <namespace_name>

 

查看当前集群ns

# #查看配置文件资源获取上下文
# kubectl  config  get-contexts
# #查看当前的命名空间
# kubectl  config  get-contexts  | awk  '/\*/{print $5}'

kubectl config get-contexts 命令结果中,*行表示现在正在生效的上下文文件。其中的NAMESPACE字段即为当前的命名空间。

 

新增上下文

新增加一个自定义名字的上下文,设置制定集群的命名空间为指定命名空间。

# kubectl config set-context  --cluster=<cluster_name> <new-context-name> --namespace=<namespace_name>
# #切换上下文
# kubectl config  use-context <context-name>

参数详解:

  • cluser_name:填入需要设置的集群的名称。可以通过 kubectl config get-cluster命令查看当前环境的集群名。
  • namespace_name:填入需要设置的默认命名空间名称。
  • new-context-name:需要创建的上下文的名称。

设置当前ns

修改当前上下文中的namespace及可以完成命名空间修改。 

# kubectl config set-context  --current --namespace=<namespace_name>

 

查看制定ns下所有资源

# kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n   <namespace_name>

 

热门相关:总裁别再玩了   未来兽世:买来的媳妇,不生崽   异世修真邪君   买妻种田:山野夫君,强势宠!   本法官萌萌哒