Kubernetes中创建命名空间实现方法

 更新时间:2022年11月15日 10:54:32   作者:wljslmz  
这篇文章主要为大家介绍了Kubernetes中创建命名空间实现方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

命名空间系统对计算来说并不陌生,我们大多数人可能在几乎所有编程语言中都见过命名空间,无论您在哪里遇到命名空间,其基本目的都是相同的:用于逻辑分组。

同样,在 Linux 内核中,也有命名空间的概念,比如存储和网络命名空间。每个容器也有自己的存储命名空间和网络命名空间,用于资源的隔离和分配。

Kubernetes命名空间是指由同一物理集群支持的虚拟集群,此选项专为在多个用户分布在多个工作团队或项目的环境中使用而设计。

本文将介绍如何创建Kubernetes命名空间。

命名空间类型

Kubernetes 中有三种命名空间。

  • Default:默认命名空间用于没有其他命名空间的对象。
  • Kube-system:Kubernetes 系统起源对象的命名空间。
  • Kube-public:用于需要对所有用户公开可用的资源的命名空间。

查看命名空间

可以使用以下命令查看当前的命名空间:

kubectl get namespaces

它将列出现有的命名空间、状态等。

如果想知道特定命名空间的概要,可以使用以下命令:

Kubectl get namespaces <name>

还可以使用以下命令获取特定命名空间的详细描述:

Kubectl describe namespace <name>

描述显示资源配额(如果指定)和资源范围,其中资源配额显示命名空间可以使用的资源总量,资源范围显示可以消耗的最小或最大资源。

还显示名称空间是活动的还是终止的,这是任何命名空间的两种状态,活动命名空间是当前使用的命名空间,而终止命名空间是正在删除且无法进一步使用的命名空间。

创建命名空间

尝试在不存在的特定命名空间中创建一个 pod。

要在“test-env”命名空间中创建一个 pod,请执行以下命令。

kubectl run nginx --image=nginx --namespace=test-env #尝试在不存在的命名空间中创建一个pod。

Pod 不会在不存在的命名空间中创建,因此我们首先需要创建一个命名空间。

要创建命名空间“test-env”,请执行以下命令(k8s create namespace)。

kubectl create namespace test-env #创建命名空间
kubectl get namespace #获取命名空间列表

现在我们有了一个命名空间,我们想在其中创建一个 pod。

要在我们创建的命名空间中创建一个 pod,请将 --namespace=test-env 选项传递给命令。

kubectl run nginx --image=nginx --namespace=test-env #在命名空间中创建一个pod。

如果您尝试在不指定命名空间的情况下获取 pod,您将无法获取 pod 的详细信息。

kubectl get pods #获取pod列表

要获取属于“test-env”命名空间的 pod 的详细信息,请使用以下命令。

kubectl get pods --namespace=test-env #获取指定命名空间中的pod列表

如果要将命名空间设置为默认命名空间,则不需要在命令中指定命名空间选项,请使用以下命令。

kubectl config set-context --current --namespace=test-env #设置默认命名空间

现在无需在命令中指定命名空间即可获取 pod 的详细信息。

kubectl get pods #从默认命名空间中获取 pod 列表 

要切换到默认命名空间,请使用以下命令。

kubectl config set-context --current --namespace=default #检查命名空间为默认值
kubectl get pods #获取pod列表

要检查哪个是默认命名空间,请使用以下命令。

kubectl config view --minify | grep namespace: #Extract the namespace from the kubernetes config file.
kubectl config set-context --current --namespace=test-env #Set default namespace in the config file.
kubectl config view --minify | grep namespace:

检查哪些 Kubernetes 资源是命名空间,执行以下命令。

kubectl api-resources --namespaced=true #获取可以在命名空间中的Kubernetes对象

要查看哪些 Kubernetes 资源不在命名空间中,请使用以下命令。

kubectl api-resources --namespaced=false #获取永远不能在命名空间中的Kubernetes对象列表

您可以使用下面提到的命令获取命名空间的详细信息。

kubectl get namespaces #获取命名空间列表。
kubectl describe namespace test-env #获取命名空间的详细信息。

命名空间也可以使用 .yml 文件创建。

vim namespace-using-file.yml #创建命名空间定义文件

执行以下命令以创建对象定义文件中指定的命名空间。

kubectl create -f namespace-using-file.yml #使用.yml文件创建命名空间
kubectl get namespaces #获取命名空间列表

当您不再需要命名空间时,可以使用以下命令将其删除。

kubectl get namespaces #获取命名空间列表
kubectl delete namespaces env-prod test-env #删除一个命名空间
kubectl get namespaces #获取命名空间列表

使用命令“kubectl change namespace”切换到不同的命名空间。

结论

Kubernetes 使得用户可以自由地在自己的空间中使用分配的资源进行工作,以最佳方式利用他们的时间和资源,而不会在团队之间造成混乱,Kubernetes 命名空间有助于应用程序开发,并使开发人员的日常任务易于完成。

以上就是Kubernetes中创建命名空间实现方法的详细内容,更多关于Kubernetes 创建命名空间的资料请关注脚本之家其它相关文章!

相关文章

  • K8s中pod间通信的两种情况总结详解

    K8s中pod间通信的两种情况总结详解

    在Kubernetes集群中,同一节点上的Pod通过本地虚拟网桥进行高效通信,这篇文章主要介绍了K8s中pod间通信的两种情况的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • 详解kubectl资源管理命令(陈述式)

    详解kubectl资源管理命令(陈述式)

    kubectl是官方的CTL命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径,这篇文章主要介绍了详解kubectl资源管理命令(陈述式),需要的朋友可以参考下
    2025-04-04
  • 浅析k8s中各组件和kube apiserver通信时的认证和鉴权问题

    浅析k8s中各组件和kube apiserver通信时的认证和鉴权问题

    这篇文章主要介绍了k8s中各组件和kube apiserver通信时的认证和鉴权,本文使用的k8s集群是用kubekey搭建,命令是./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1,需要的朋友可以参考下
    2022-06-06
  • kubernetes 使用jq命令对资源配置查看方式

    kubernetes 使用jq命令对资源配置查看方式

    这篇文章主要介绍了kubernetes 使用jq命令对资源配置查看方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 详解k8s ConfigMap 中 subPath 字段和 items 字段

    详解k8s ConfigMap 中 subPath 字段和 items

    volumeMounts.subPath 属性可用于指定所引用的卷内的子路径,而不是其根路径,这篇文章主要介绍了详解k8s ConfigMap 中 subPath 字段和 items 字段,需要的朋友可以参考下
    2023-03-03
  • Rainbond部署组件Statefulset的使用官方文档

    Rainbond部署组件Statefulset的使用官方文档

    这篇文章主要为大家介绍了官方文档Rainbond部署组件Statefulset的使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 关于CentOS7日志文件及journalctl日志查看方法

    关于CentOS7日志文件及journalctl日志查看方法

    这篇文章主要介绍了关于CentOS7日志文件及journalctl日志查看方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 详解kubernetes pod的编排和生命周期

    详解kubernetes pod的编排和生命周期

    这篇文章主要介绍了kubernetes pod的编排和生命周期的相关资料,帮助大家更好的理解和学习使用K8S,感兴趣的朋友可以了解下
    2021-04-04
  • Kubernetes  Dashboard 配置用户名密码方式登录操作流程

    Kubernetes  Dashboard 配置用户名密码方式登录操作流程

    为了K8s集群安全,默认情况下Dashboard以Token的形式登录的,那如果我们想以用户名/密码的方式登录该怎么操作呢?其实只需要我们创建用户并进行 ClusterRoleBinding绑定即可,下面给大家分享Kubernetes  Dashboard 配置用户名密码方式登录操作流程,感兴趣的朋友一起看看吧
    2024-06-06
  • kubeadm init快速搭建k8s源码解析

    kubeadm init快速搭建k8s源码解析

    这篇文章主要为大家介绍了kubeadm init快速搭建k8s源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论