Ich habe nur aufgelistet, was ich genauso gemacht habe. Ich habe Python nicht so sehr berührt, also habe ich versucht, es zum Lernen zu verwenden. Ich weiß nicht, ob es hilfreich sein wird, aber wenn Sie es auf die gleiche Weise verwenden möchten, möchten Sie es möglicherweise befolgen.
Die verwendete Umgebung ist wie folgt.
Kubernetes verwendet auch den IBM Cloud Kubernetes Service (IKS), aber ich frage mich, ob er überall verwendet werden kann.
Folgen Sie git. Client mit pip eingeführt.
pip install kubernetes
Beispielcode (Siehe alle Pods)
from kubernetes import client, config
# Configs can be set in Configuration class directly or using helper utility
config.load_kube_config()
v1 = client.CoreV1Api()
print("Listing pods with their IPs:")
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))
Dieser Code greift basierend auf der Umgebungsvariablen KUBECONGIG auf den Cluster zu. Daher ist es notwendig, die Konfiguration des IKS-Clusters abzurufen.
Verwenden Sie die IBM Cloud CLI, um die KUBECONFIG abzurufen.
Führen Sie nach dem Anmelden beim Zielkonto den folgenden Befehl aus.
$ ibmcloud ks cluster config --cluster mycluster
Kubernetes version 1.16 has removed deprecated APIs. For more information, see <http://ibm.biz/k8s-1-16-apis>
Warnung: The behavior of this command in your current CLI version is deprecated, and becomes unsupported when CLI version 1.0 is released in March 2020. To use the new behavior now, set the '{{.BetaVar}}' environment variable. In {{.Shell}}, run '{{.Command}}'.
Note: Changing the beta version can include other breaking changes.Weitere Informationen finden Sie unter http://ibm.biz/iks-cli-Siehe v1
OK
Die mycluster-Konfiguration wurde erfolgreich heruntergeladen.
Exportieren Sie die Umgebungsvariablen und verwenden Sie Kubernetes.
export KUBECONFIG=/Users/<user_name>/.bluemix/plugins/kubernetes-service/clusters/..../zzzz.yml
/ plugins / kubernetes-service
→ ⭕️ / plugins / container-service
, aber ich frage mich, ob ich mir darüber Sorgen machen muss.$ python kubeapi.py Listing pods with their IPs:
10.76.68.235 kube-system calico-kube-controllers-7ddc977c56-ccrkh
10.76.68.235 kube-system calico-node-7b88g
・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・ ・ ・ ・
Ich habe eine Liste von Hülsen.
Als Verbindungsmethode, die keine kube-config verwendet, gibt es eine Verbindungsmethode, die ein Token oder ein TLS-Zertifikat verwendet. Einfach das. → https://github.com/kubernetes-client/python/blob/master/examples/remote_cluster.py
Ich wollte ein ServiceAccount erstellen und die Kubernetes-API basierend auf diesen Anmeldeinformationen verwenden. Es war das.
Ich lerne immer noch rund um Service Account, daher möchte ich nur das vorstellen, was ich getan habe.
Die von Secret of Config verwendeten Informationen sind Token, ca.crt. Bese64 dekodieren und verwenden.
Die erstellte ca.cart-Datei hat dieses Format. Wenn Sie es dekodieren, sollte es sich bereits in diesem Zustand befinden. Fügen Sie es also so ein, wie es ist.
-----BEGIN CERTIFICATE-----
Zeichenkette Zeichenkette Zeichenkette Zeichenkette Zeichenkette Mojimo jimo ...
-----END CERTIFICATE-----
Im Python-Code lautet der Teil, der der obigen config.load_kube_config ()
entspricht, wie folgt.
# Configs can be set in Configuration class directly or using helper utility
configuration = client.Configuration()
configuration.verify_ssl = True
configuration.host = 'https://xxx.xxx.xx.xx.xx.:yyy'
#Fügen Sie den erworbenen Token unverändert ein.
configuration.api_key['authorization'] = '<token>'
configuration.api_key_prefix['authorization'] = 'Bearer'
#ca.Der Weg zu cert. Es bewegt sich nicht, selbst wenn es so geschoben wird, wie es ist.
configuration.ssl_ca_cert = './ca.cert'
namespace = 'default'
v1 = client.CoreV1Api(client.ApiClient(configuration))
Jetzt können Sie die API verwenden! Sollte sein! Ich denke, dass Sie verschiedene mühsame Schritte unternommen haben, aber bitte passen Sie sie selbst an. Besonders um Autorität.
Wenn Sie darüber hinausgehen, funktioniert es fast wie Samples.
Es geht darum, Notizen zu schreiben, aber das war's.
Recommended Posts