如何将普罗米修斯适配器移动到另一个命名空间?

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)