在Kubernetes (K8s) 中,命名空间(Namespace)是一种用来将集群资源划分为多个虚拟集群的方法。每个命名空间都拥有自己独立的资源,这有助于多个团队或项目在同一集群中共享资源而不会发生冲突。有时候,我们可能需要改变命名空间的名称,可能是因为项目重命名或者其他原因。本文将介绍如何实现在K8s中改变命名空间的名称。

### 实现K8s命名空间改名的流程:

| 步骤 | 操作 |
| :---: | :--- |
| 1 | 查看当前命名空间 |
| 2 | 创建新的命名空间 |
| 3 | 迁移资源至新的命名空间 |
| 4 | 删除原命名空间 |

### 操作步骤及代码示例:

#### 步骤1:查看当前命名空间

在命令行中执行以下命令,查看当前的命名空间:

```bash
kubectl config get-contexts
```

注释:该命令用于获取当前上下文的信息,包括当前使用的命名空间。

#### 步骤2:创建新的命名空间

在命令行中执行以下命令,创建新的命名空间:

```bash
kubectl create namespace new-namespace
```

注释:此命令将创建一个名为“new-namespace”的新命名空间。

#### 步骤3:迁移资源至新的命名空间

在命令行中执行以下命令,将原有命名空间中的资源迁移到新的命名空间:

```bash
kubectl get deployments,pods,services --namespace=old-namespace -o yaml | kubectl apply --namespace=new-namespace -f -
```

注释:此命令将获取原有命名空间(old-namespace)中的 Deployments、Pods 和 Services,并将其应用到新的命名空间(new-namespace)中。

#### 步骤4:删除原命名空间

在命令行中执行以下命令,删除原有的命名空间:

```bash
kubectl delete namespace old-namespace
```

注释:该命令用于删除原有的命名空间(old-namespace),请确保在删除之前已经迁移了所有资源至新的命名空间。

通过以上步骤,你就可以成功地在Kubernetes中改变命名空间的名称了。记得在操作前仔细检查,确保没有遗漏任何资源,以免造成不必要的损失。希望这篇文章对你有所帮助,祝您在K8s使用中顺利!