2017-05-17 4 views
0

Ich versuche, Kubernetes über ACS bereitzustellen. Die Bereitstellung funktioniert einwandfrei, aber sobald ich versuche, eine Verbindung zum Cluster mit dem kubectl-Proxy herzustellen, schlägt es fehl. Jeder kubectl-Befehl schlägt fehl.Kubernetes Installation schlägt fehl auf ACS

Ich SSH'ed zum Server und fand heraus nur ein Container gestartet. Keine einzige andere in Sicht sogar mit -a.

Jeder hat eine Ahnung, warum das passiert?

+0

manchmal Dinge wie diese passieren, würde ich vorschlagen, Cluster von Grund auf neu zu installieren. – 4c74356b41

+0

Ich habe das schon 3 mal probiert und jedes Mal klappt es nicht. – Tourna

+0

Wie implementieren Sie das? – 4c74356b41

Antwort

0

Nach Ihrer Beschreibung scheint es, Sie haben nicht konfiguriert den Service Principal korrekt.
Möglicherweise müssen Sie überprüfen, ob die Anmeldeinformationen korrekt angegeben wurden und dass der konfigurierte Dienstprinzipal über Lese- und Schreibberechtigungen für das Ziel-Abonnement verfügt.
Wenn Ihr Service Principal falsch konfiguriert ist, wird keine der kubernetes-Komponenten auf eine gesunde Weise angezeigt. Wir können überprüfen, ob das Problem zu sehen:

[email protected]:~# journalctl -u kubelet | grep --text autorest 

Wenn Sie Ausgabe sehen, die wie folgt aussieht, es bedeutet, dass Sie nicht den Dienstprinzipal richtig konfiguriert haben.

May 18 07:09:36 k8s-master-D9DE702A-0 docker[5534]: E0518 07:09:36.901937 5920 kubelet.go:1186] Cannot get Node info: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400 
May 18 07:09:37 k8s-master-D9DE702A-0 docker[5534]: E0518 07:09:37.119646 5920 kubelet_node_status.go:70] Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400 

Weitere Informationen darüber, wie ein Dienstprinzipal für ACS-Engin Kubernetes Cluster erstellen/konfigurieren, finden Sie in diesem Azure CLI 2.0 oder PowerShell.

Wir können CLI 2.0 verwenden, um Informationen über ACS zu erhalten, die clientId ist der Dienstprinzipal.

C:\Users>az acs show -g k8s -n containerservice-k8s 
{ 
    "agentPoolProfiles": [ 
    { 
. 
. 
. 
. 

    }, 
    "provisioningState": "Succeeded", 
    "resourceGroup": "k8s", 
    "servicePrincipalProfile": { 
    "clientId": "1498b171-xxxx-xxxx-xxxx-8ef56a178b89", 
    "secret": null 
    }, 
    "tags": null, 
    "type": "Microsoft.ContainerService/ContainerServices", 
    "windowsProfile": null 
} 

Wir können Powershell verwenden, um die Service-Haupt zu bekommen:

PS C:\Users> Get-AzureRmADServicePrincipal | ?{ $_.ApplicationId -eq "1498b171-xxxx-xxxx-xxxx-8ef56a178b89" } | fl * 


ServicePrincipalNames : {http://azure-cli-2017-04-13-08-16-07, 1498b171-xxxx-xxxx-xxxx-8ef56a178b89} 
ApplicationId   : 1498b171-xxxx-xxxx-xxxx-8ef56a178b89 
DisplayName   : azure-cli-2017-04-13-08-16-07 
Id     : d86886b9-xxxx-xxxx-xxxx-25ab57803a33 
Type     : ServicePrincipal 
+0

Hey, ich konnte es beheben, indem ich den Cluster über Azure CLI erstellte. Und es den SP selbst erzeugen lassen. Vielen Dank für Ihre tolle Antwort! – Tourna

Verwandte Themen