如何将普罗米修斯适配器移动到另一个命名空间?
how to move prometheus adapter to another namespace?
现在我在不同的命名空间中有 prometheus 和 prometheus 适配器:
我尝试配置适配器 YML 但没有成功:
api版本:apps/v1
种类:部署
元数据:
annotations:
deployment.kubernetes.io/revision: "2"
creationTimestamp: "2020-01-30T08:49:05Z"
generation: 2
labels:
app: prometheus-adapter
chart: prometheus-adapter-2.0.1
heritage: Tiller
release: prometheus-adapter
name: prometheus-adapter
namespace: my-custom-namespace
resourceVersion: "18513075"
selfLink: /apis/apps/v1/namespaces/my-custom-namespace/deployments/prometheus-adapter
...
但我看到错误:
the namespace of the object (my-custom-namespace) does not match the namespace on the request (default)
如何解决?
您无法编辑现有资源以进行更改namespace.You需要先删除现有部署,然后在另一个命名空间中重新创建部署。
编辑:
对于 Helm2,您需要先删除版本 helm delete --purge release-name
,然后将其部署到不同的命名空间,如 helm install stable/prometheus-adapter --namespace namespace-name
使用 helm 3,因为没有 --namespace
标志,您需要删除现有部署,然后将其重新部署到不同的命名空间,如下例所示,以部署指标服务器。
$ helm install metricserver stable/metrics-server
Error: the namespace from the provided object "kube-system" does not match the namespace "default". You must pass '--namespace=kube-system' to perform this operation.
$ helm install metricserver stable/metrics-server --namespace=kube-system
Error: the namespace from the provided object "kube-system" does not match the namespace "default". You must pass '--namespace=kube-system' to perform this operation.
$ kubectl config set-context kube-system --cluster=kubernetes --user=kubernetes-admin --namespace=kube-system
Context "kube-system" created.
$ kubectl config use-context kube-system
Switched to context "kube-system".
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kube-system kubernetes kubernetes-admin kube-system
kubernetes-admin@kubernetes kubernetes kubernetes-admin
metallb kubernetes kubernetes-admin metallb
nfstorage kubernetes kubernetes-admin nfstorage
$ helm install metricserver stable/metrics-server
NAME: metricserver
LAST DEPLOYED: 2019-05-26 14:37:45.582245559 -0700 PDT m=+2.942929639
NAMESPACE: kube-system
STATUS: deployed
对于 helm 2,您可以使用以下命令将图表安装在您想要的任何命名空间中:
helm install stable/prometheus-adapter --name my-release --namespace foo
请记住,您需要删除上一个。
这可以使用 helm delete --purge my-release
来完成
还有一篇关于 Helm3 变化的非常好的文章 Breaking Changes in Helm 3 (and How to Fix Them)。
现在我在不同的命名空间中有 prometheus 和 prometheus 适配器:
我尝试配置适配器 YML 但没有成功: api版本:apps/v1 种类:部署 元数据:
annotations:
deployment.kubernetes.io/revision: "2"
creationTimestamp: "2020-01-30T08:49:05Z"
generation: 2
labels:
app: prometheus-adapter
chart: prometheus-adapter-2.0.1
heritage: Tiller
release: prometheus-adapter
name: prometheus-adapter
namespace: my-custom-namespace
resourceVersion: "18513075"
selfLink: /apis/apps/v1/namespaces/my-custom-namespace/deployments/prometheus-adapter
...
但我看到错误:
the namespace of the object (my-custom-namespace) does not match the namespace on the request (default)
如何解决?
您无法编辑现有资源以进行更改namespace.You需要先删除现有部署,然后在另一个命名空间中重新创建部署。
编辑:
对于 Helm2,您需要先删除版本 helm delete --purge release-name
,然后将其部署到不同的命名空间,如 helm install stable/prometheus-adapter --namespace namespace-name
使用 helm 3,因为没有 --namespace
标志,您需要删除现有部署,然后将其重新部署到不同的命名空间,如下例所示,以部署指标服务器。
$ helm install metricserver stable/metrics-server
Error: the namespace from the provided object "kube-system" does not match the namespace "default". You must pass '--namespace=kube-system' to perform this operation.
$ helm install metricserver stable/metrics-server --namespace=kube-system
Error: the namespace from the provided object "kube-system" does not match the namespace "default". You must pass '--namespace=kube-system' to perform this operation.
$ kubectl config set-context kube-system --cluster=kubernetes --user=kubernetes-admin --namespace=kube-system
Context "kube-system" created.
$ kubectl config use-context kube-system
Switched to context "kube-system".
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kube-system kubernetes kubernetes-admin kube-system
kubernetes-admin@kubernetes kubernetes kubernetes-admin
metallb kubernetes kubernetes-admin metallb
nfstorage kubernetes kubernetes-admin nfstorage
$ helm install metricserver stable/metrics-server
NAME: metricserver
LAST DEPLOYED: 2019-05-26 14:37:45.582245559 -0700 PDT m=+2.942929639
NAMESPACE: kube-system
STATUS: deployed
对于 helm 2,您可以使用以下命令将图表安装在您想要的任何命名空间中:
helm install stable/prometheus-adapter --name my-release --namespace foo
请记住,您需要删除上一个。
这可以使用 helm delete --purge my-release
还有一篇关于 Helm3 变化的非常好的文章 Breaking Changes in Helm 3 (and How to Fix Them)。