当前位置: 首页 > 科技观察

如何在Kubernetes中创建命名空间?

时间:2023-03-20 11:30:52 科技观察

[.com速译]当多个团队使用同一个集群时,命名空间很有用。当可能发生名称冲突时,使用名称空间。它可以是多个集群之间的虚拟墙。例如,我们不能在Kubernetes集群中有同名的Pod,但是使用命名空间,我们实际上可以划分集群并拥有同名的Pod。命名空间的一些重要特性如下。?它促进了使用相同名称空间的pod到pod的通信。?它充当驻留在同一物理集群上的虚拟集群。?它在团队及其环境之间提供逻辑隔离。在本文中,我们将创建一个命名空间,并在我们刚刚创建的命名空间中创建一个pod。我们还将看到如何将命名空间设置为默认命名空间。先决条件具有至少1个工作节点的Kubernetes集群如果您想了解如何创建Kubernetes集群,请单击此处(https://www.howtoforge.com/setup-a-kubernetes-cluster-on-aws-ec2-实例-ubuntu-using-kubeadm/)。本指南将帮助您在AWSUbuntu18.04EC2实例上创建具有1个主节点和2个节点的Kubernetes集群。我们会做什么?创建命名空间创建命名空间要列出Kubernetes集群中所有可用的命名空间,请执行以下命令。kubectlgetnamespace#Getallnamespaceinthecluster图1现在让我们在一个不存在的特定命名空间中创建一个pod。要在“test-env”命名空间中创建一个pod,请执行以下命令。kubectlrunnginx--image=nginx--namespace=test-env#Trytocreateapodinthenamespacethatdoesnotexist.pod不会创建在不存在的命名空间中,所以我们需要先创建一个命名空间。要创建命名空间“test-env”,请执行以下命令。kubectlcreatenamespacetest-env#Createanamespacekubectlgetnamespace#Getalistofnamespaces图2现在我们有了要在其中创建pod的命名空间。要在我们创建的这个空间中创建pod,请将--namespace=test-env选项传递给命令。kubectlrunnginx--image=nginx--namespace=test-env#Createapodinthenamespace。如果您尝试在不指定命名空间的情况下创建Pod,则无法获取Pod的详细信息。kubectlgetpods#Getalistofpods要获取属于“test-env”命名空间的pod的详细信息,请使用以下命令。kubectlgetpods--namespace=test-env#Getalistofpodsinthespecifiednamespace图3如果要将命名空间设置为默认命名空间,这样就不需要在命令中指定命名空间选项,请使用以下命令。kubectlconfigset-context--current--namespace=test-env#Setdefaultnamespace现在您无需在命令中指定命名空间即可获取pod详细信息。kubectlgetpods#Getalistofpodsfromthedefaultnamespace图4要切换到默认命名空间,请使用以下命令。kubectlconfigset-context--current--namespace=default#Checkthenamespacetodefaultkubectlgetpods#Getalistofpods图5要检查哪个是默认命名空间,请使用以下命令。kubectlconfigview--minify|grepnamespace:#Extractthenamespacefromthekubernetesconfigfile.kubectlconfigset-context--current--namespace=test-env#Setdefaultnamespaceintheconfigfile.kubectlconfigview--minify|grepnamespace:图6要检查哪些Kubernetes资源是命名空间,请执行以下命令。kubectlapi-resources--namespaced=true#GetKubernetesobjectswhichcanbeinanamespaces图7要查看哪些Kubernetes资源不在命名空间中,请使用以下命令。kubectlapi-resources--namespaced=false#GetalistofKubernetesobjectsthatcanneverbeinanamespace图8您可以使用以下命令获取有关命名空间的详细信息。kubectlgetnamespaces#Getalistofnamespaces.kubectldescribenamespacetest-env#Getdetailsofanamespace。图9您还可以使用.yml文件来创建命名空间。vimnamespace-using-file.yml#Createanamespacedefinitionfile图10执行以下命令创建对象定义文件中指定的命名空间。kubectlcreate-fnamespace-using-file.yml#Createanamespaceusinga.ymlfilekubectlgetnamespaces#Getalistofnamespaces图11当您不再需要命名空间时,只需使用以下命令将其删除。kubectlgetnamespaces#Getalistofnamespaceskubectldeletenamespacesenv-prodtest-env#Deleteanamespacekubectlgetnamespaces#Getalistofnamespaces图12结论在本文中,我们了解了命名空间、创建命名空间、更改默认命名空间以及检查命名空间中存在和不存在的Kubernetes资源。我们还了解了如何在我们选择的命名空间中创建Kubernetes对象(在本例中为Pod)。原标题:HowtocreateNamespacesinKubernetes