使用REST API访问Kubernetes API

时间:2018-12-17 04:21:53

标签: rest api authentication kubernetes

我正在尝试从NodeJS访问Kubernetes API。在没有kubectl或gcloud命令行工具可用的环境中运行。使用https://github.com/kubernetes-client/javascript客户端SDK。问题是如何验证和访问远程群集。对于在GCP中运行的K8,我需要它。

换句话说,尝试执行“ gcloud容器群集获取凭据”的操作,但是没有“ gcloud” cli。

2 个答案:

答案 0 :(得分:1)

我认为您可以使用kubernetes-client推广的GoDaddyNodeJS调用Kubernetes API。 Kubernetes-client的{​​{1}}简化了如何调整Kubernetes API接口的方法。

下面的示例演示了一种方法,该方法如何使用小片段提取默认Kubernetes NodeJS中的所有Deployments

Namespace

Here,您可以找到更多使用const Client = require('kubernetes-client').Client; const config = require('kubernetes-client').config; const client = new Client({ config: config.fromKubeconfig(), version: '1.9' }); const deployments = await client.api.v1.namespaces('default').deployments.get(); 的代码段。

答案 1 :(得分:0)

如果要从外部使用Kubernetes Master API,则需要以here描述的一种方式进行授权。

特别是,如果要使用用户名/密码并且使用GKE(在GCP上为k8),则可以按照以下步骤操作:

  1. 单击您的群集名称和“显示凭据”,您可以在其中找到用户名和密码。
  2. 对REST调用使用标头:“ Authorization:Basic BASE64ENCODED(USER:PASSWORD)”。