使用API客户端库时,如何在VM /云功能上使用服务帐户进行身份验证?
例如,对于nodejs:
const k8s = require('@kubernetes/client-node');
const yaml = require('js-yaml');
const fs = require('fs');
const kc = new k8s.KubeConfig();
kc.loadFromDefault();
const k8sApi = kc.makeApiClient(k8s.BatchV1Api);
我应该使用而不是kc.loadFromDefault();
?服务帐户实际存储在哪里?
根据https://cloud.google.com/compute/docs/access/service-accounts:
通过直接向API请求创建实例时 而不使用gcloud命令行工具或Google Cloud 平台控制台,未启用默认服务帐户 与实例。但是,您仍然可以启用默认服务 明确地将其指定为请求有效负载的一部分。
但是如何明确指定呢?我可以指定它使用虚拟机上下文中关联的服务帐户吗?还是只能使用公共服务帐户json文件明确指定它?
chris@instance-1:~$ gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* 577379697673-compute@developer.gserviceaccount.com
To set the active account, run:
$ gcloud config set account `ACCOUNT`
To take a quick anonymous survey, run:
$ gcloud alpha survey
我的意思是gcloud
发生上述情况吗?如何使用客户端API实现以上目标?