📅  最后修改于: 2023-12-03 15:15:30.500000             🧑  作者: Mango
在 Kubernetes 中,命名空间 (Namespace) 是一种将集群资源划分为不同组的方法。它们可以用来避免名称冲突,隔离环境,或者将资源分组到逻辑组当中。例如,可能会将所有与 Web 应用程序相关的资源放在一个命名空间中,而将所有与数据库相同的资源放在另一个命名空间中。
使用 Helm 可以非常方便的管理命名空间的创建和使用。本文将介绍如何使用 Helm 安装一个示例应用程序并指定命名空间。
首先,您需要下载一个示例应用程序的代码。这里我们将使用一个简单的 Node.js 任务管理器应用程序示例。您可以从 GitHub 上 clone 该仓库,命令如下:
git clone https://github.com/kuzzleio/kuzzle-example-helm.git
在 Helm 中,如果您要安装一个资源,您必须使用 kubectl 先创建该资源所属的命名空间。在本例中,我们将创建一个名为 "example-namespace" 的命名空间:
kubectl create namespace example-namespace
接下来,我们将使用 Helm 安装 示例应用程序 的 Chart。Chart 是 Helm 的 package 概念,它们是 Helm 部署应用程序的实际方法。基本上,一个 Chart 包括应用程序所有的 Kubernetes 资源清单文件。
首先,现在您的 shell 当中进入 Chart 目录:
cd kuzzle-example-helm
然后安装 Chart 到我们刚刚创建的命名空间,命令如下:
helm install example-chart . --namespace example-namespace
运行此命令后,Helm 将在 example-namespace 命名空间中安装示例应用程序。
运行以下命令可以查看 Helm 安装的资源:
kubectl get all -n example-namespace
您应该看到输出类似以下内容:
NAME READY STATUS RESTARTS AGE
pod/example-chart-backend-59d8548756-xqfbq 1/1 Running 0 32s
pod/example-chart-frontend-7c848d4b6-4l6nk 1/1 Running 0 32s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/example-chart-backend ClusterIP 10.99.246.105 <none> 80/TCP 32s
service/example-chart-frontend ClusterIP 10.99.60.121 <none> 80/TCP 32s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/example-chart-backend 1/1 1 1 32s
deployment.apps/example-chart-frontend 1/1 1 1 32s
NAME DESIRED CURRENT READY AGE
replicaset.apps/example-chart-backend-59d8548756 1 1 1 32s
replicaset.apps/example-chart-frontend-7c848d4b6 1 1 1 32s
要删除示例应用程序及其命名空间,运行以下命令:
helm uninstall example-chart --namespace example-namespace
kubectl delete namespace example-namespace
以上就是使用 Helm 安装示例应用程序并指定命名空间的过程。在实际环境中,可以将这些步骤应用于任何应用程序或 Helm Chart。