Ich versuche, Remote-Zugriff auf die Kubernetes-API (in erster Linie von unserem Jenkins-Server) zu erhalten, damit wir RESTful Aktionen durchführen können und nicht auf kubectl
verlassen. Idealerweise würde ich dies in Go oder Python tun, aber keine der Bibliotheken, die ich ausprobiert habe, war erfolgreich, und die Verwendung von urllib2
gibt direkt eine Vielzahl von Fehlern zurück. Ich konnte mich über curl verbinden (wenn auch mit ein paar seltsamen Fehlern), aber ich hatte gehofft, dass ich für all das keine Curl-GET/PUT-Anfragen erstellen musste.Remote-Zugriff auf Kubernetes-API Ohne den Proxy
Also meine Frage ist: kann eine Art Seele (vielleicht jemand von Google?) Die Schritte beschreiben, die ich brauche, um mit dem Kubernetes-API-Server von einem Remotestandort ordnungsgemäß zu authentifizieren? Jede Anleitung wird sehr geschätzt, da ich daran interessiert bin, mehr über x509 zu lernen, aber mich anstrengen muss, alle Teile zusammen zu binden.
Curl-Struktur, die grundsätzlich
Diese .pem-Dateien wurden manuell aus den Werten erstellt in ~/.kube/config
$ curl --header "Authorization: Bearer $TOKEN" -key key.pem -cacert ca.pem -cert client.pem https://MASTER_IP/api
curl: (6) Could not resolve host: key.pem
curl: (6) Could not resolve host: ca.pem
curl: (6) Could not resolve host: client.pem
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "172.20.0.9:443"
}
]
}
4/14/2016 aktualisieren So scheint es, dass ich funktioniert benötigt, um einige dieser als .crt-Dateien umzubenennen. Nachdem ich über mögliche Probleme mit curl gelesen hatte, gab ich wget heraus und es scheint keine Probleme zu haben, ohne sogar einen Auth-Header zu spezifizieren. Jeder Einblick in Client-basierte Authentifizierung wird geschätzt.
$ wget -qO- https://MASTER_IP/api --certificate client-decoded.crt --private-key clean-key.pem --ca-certificate ca.crt
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "172.20.0.9:443"
}
]
}
Sie einen Strich auf --key sind vermisst , --cacert und --cert args, und müssen möglicherweise auch das Cert als ./client.pem angeben –