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 创建命名空间的资料请关注脚本之家其它相关文章!

相关文章

  • IoT边缘集群Kubernetes Events告警通知实现示例

    IoT边缘集群Kubernetes Events告警通知实现示例

    这篇文章主要为大家介绍了IoT边缘集群Kubernetes Events告警通知实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • k8s dashboard安装过程记录

    k8s dashboard安装过程记录

    这篇文章主要介绍了k8s dashboard安装过程记录,本案例k8s版本为v1.22.17,所以安装v2.7.0版本的dashboard,需要的朋友可以参考下
    2024-05-05
  • 详解推荐使用systemd timer替代cronjob

    详解推荐使用systemd timer替代cronjob

    这篇文章主要为大家介绍了推荐使用systemd timer替代0cronjob原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    这篇文章主要介绍了k8s部署Pyroscope并分析golang性能瓶颈,Pyroscope支持多种编程语言并提供了丰富的性能数据,可以帮助我们跟踪应用程序的执行情况,并根据收集到的数据来识别性能瓶颈,需要的朋友可以参考下
    2023-04-04
  • k8s设置非强一致反亲和性示例

    k8s设置非强一致反亲和性示例

    这篇文章主要为大家介绍了k8s设置非强一致反亲和性示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • K8s-helm简介及基本概念详解

    K8s-helm简介及基本概念详解

    ​Helm 使用的包格式称为 chart,它是一个描述 Kubernetes 相关资源对象的文件集合,这篇文章主要介绍了K8s-helm简介及基本概念,需要的朋友可以参考下
    2022-07-07
  • 常见Kubernetes kubectl命令使用详解

    常见Kubernetes kubectl命令使用详解

    这篇文章主要为大家介绍了常见Kubernetes kubectl命令使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 2022最新青龙面板部署完整版图文教程

    2022最新青龙面板部署完整版图文教程

    这篇文章主要介绍了2022最新青龙面板部署完整版图文教程,下面以腾讯云服务器为例,先选地区、然后选择官方镜像、系统镜像、Centos7.6版本,需要的朋友可以参考下
    2022-05-05
  • k8s service nodePort无法访问的问题解决

    k8s service nodePort无法访问的问题解决

    今天有一个项目做service nodeport转发,结果设置完之后发现外网访问失败,下面这篇文章主要给大家介绍了关于k8s service nodePort无法访问的问题解决,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Rainbond上部署API Gateway Kong及环境配置教程

    Rainbond上部署API Gateway Kong及环境配置教程

    这篇文章主要为大家介绍了Rainbond上部署API Gateway Kong及环境配置教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04

最新评论