2 つの traefik をインストールしようとしています。それぞれが独自の名前空間に配置されます。各 traefik はラベル選択を使用します。以下は、helm install を実行するときにそれぞれに使用する値のオーバーライドです。
rbac:
enabled: true
# Enable prometheus
additionalArguments:
- "--metrics.prometheus=true"
# Options for the main traefik service, where the entrypoints traffic comes
# from.
service:
enabled: true
type: ClusterIP
kubernetes:
namespaces: "{{NAMESPACE}}"
providers:
kubernetesCRD:
labelSelector: wsLabel={{NAMESPACE}}
kubernetesIngress:
labelSelector: wsLabel={{NAMESPACE}}
最初の traefik は正常にインストールされます。2 番目の traefik を試みると、次のメッセージが表示されます。
Error: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "traefik" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-namespace" must equal "namespace2": current value is "namespace1"
使っています:
chartVersion: 10.19.4
appVersion: 2.6.3
HELM を使用して、ラベル選択を使用する複数の Traefik をインストールするにはどうすればよいですか?
答え1
エラー メッセージには、traefik という名前の clusterrole がすでに存在していることが明確に示されています。kubectl get clusterrole を実行するだけで、すでにインストールされている traefik clusterrole が一覧表示されます。
helm を更新して values.yaml に新しいカスタム clusterrole 値を追加し、新しい clusterrole 名で helm install を実行するだけです。完了です。