Warum schlägt das Terraform-Skript, das die Kubernetes enthält, mit der Meldung "Verbindung abgelehnt" fehl?
Wenn Sie Generate Plan
für das Terraform-Script, das den Cluster enthält, verwenden, um vor drei Monaten ordnungsgemäß zu arbeiten, aber jetzt dasselbe Terraform-Script den folgenden Fehler erhält:
"Error: Get "http://localhost/api/v1/namespaces/external-secrets":
dial tcp [::1]:80: connect: connection refused".
Beim Vergleich der Protokolle zwischen erfolgreicher und fehlgeschlagener Generate Plan
-Ausführung. Die beobachtete new versions picked up of providers
hat das Script auf dieselbe Version gezwungen, nur um sicherzustellen,
dass eine Versionsänderung den Fehler nicht verursacht hat. Der Fehler bleibt bestehen.
Dieses Problem stammt vom Kubernetes-Provider. Es gibt viele Diskussionen über diesen Fehler durch verschiedene Cloud-Provider, aber es gibt keine definitive Lösung.
Überprüfen Sie die folgenden Referenzen und Lösungen, um das Problem zu beheben
- Referenzen
Basierend auf den bisherigen Erfahrungen sind die beiden Lösungen zur Problemumgehung zu beheben.
Lösung 1
Wenn Sie die Providerauthentifizierung für Kubernetes wie im Codeblock gezeigt verwenden.
provider "kubernetes" {
config_path = data.ibm_container_cluster_config.cluster_config.config_file_path
}
Ändern Sie die Vorlage wie folgt.
provider "kubernetes" {
host = data.ibm_container_cluster_config.cluster_config.host
client_certificate = data.ibm_container_cluster_config.cluster_config.admin_certificate
client_key = data.ibm_container_cluster_config.cluster_config.admin_key
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
}
Lösung 2
Sie können den Status für die Clusterkonfiguration aus der statefile
entfernen, indem Sie den CLI-Befehl IBM Cloud Schematics verwenden
und den Befehl Terraform plan
oder Terraform apply
erneut ausführen.
ibmcloud schematics workspace state rm --id --address <enter the workspace ID and the address of the resource to mark as taint>