K8s API から Kubernetes クラスター名を取得する方法は、
curl http://metadata/computeMetadata/v1/instance/attributes/cluster-name -H "Metadata-Flavor: Google"
(クラスター内から)、または
kubectl run curl --rm --restart=Never -it --image=appropriate/curl -- -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name
(クラスターの外部から)、クラスター名を取得するために使用できます。それはうまくいきます。
k8s client-go
ライブラリを使用してプログラムで同じことを実行する方法はありますか? おそらくRESTClient()を使用していますか?試してみましたが、取得し続けましたthe server could not find the requested resource
。
アップデート
私がやろうとしているのはcluster-name
、ローカル コンピューターまたは k8s クラスター内で実行されるアプリから取得することです。k8sでは、クラスター内またはクラスター外の認証経由client-go
を初期化できます。clientset
達成可能な上部に記載されている 2 つのコマンドを使用します。サービスが実行されている場所に依存したり、実行client-go
する必要があるのではなく、ライブラリから同じことを達成する方法があるかどうか疑問に思っていました。kubectl
curl