通过API访问公有云Kubernete集群

    当前很多用户有对接kubernetes集群的需求,但是对于如何进行集群管理及调用kubernetes原始API还不太熟悉,本文旨在介绍如何在用户环境调试及集成kubernetes相关功能。


集群管理功能

集群管理功能比如获取集群证书,添加节点到集群等功能遵循阿里云openAPI调动的方式,分为两种调用方式:

1、         通过SDK调用(建议使用)

SDK地址:https://develop.aliyun.com/tools/sdk?spm=a2c4g.11186623.2.3.8k5rdm

可以在此地址中选择需要的SDK类型。

 

2、         通过代码实现签名机制调用

如果不通过SDK调用集群管理功能,则需要实现签名机制,方法请见公有云文档:签名机制及相关章节。

Kubernetes原生API调用

方式一:通过token来访问

1、         获取API Server endpoint

登录容器服务kubernetes管理控制台,点击【集群】->【管理】->【基本信息】,在连接信息里找到“API Server公网连接端点”。

 10b6fa394950acc95a68356af8f5b87648d721b9

 

2、         获取token

a)      在获取API Server endpoint页面查看“通过kubectl连接kubernetes集群”,获取登录kubernetes集群方式;

7fc3619d0962bb63d937f3062563fb6b65fd8dba

b)      通过kubectl获取token,命令如下图所示。

                             i.           kubectl get secrets -n kube-system admin-token-xwk4s -o yaml,在这里我们选取admin的secret,可以根据实际情况进行角色的选取;

                            ii.           选择其中的token,该token是base64编码过的;

8e9dbe950751160cabfb1ede4222ef172fee433f

                          iii.           对该token进行decode获取真实的token;

echo “token”|base64 --decode

 

3、         API使用示例

a)      通过postman发送请求

将上面获取到的token填入header,格式为Authorization:Bearer [token]

7ef5133d73097374de51ac6b5b62491fa2a14446

 

b)      通过代码实现

在代码中的消息header中同样添加Authorization:Bearer [token]即可;

方式二 通过证书来访问

1、         获取API Server endpoint

同方式一;

2、         获取证书

a)      获取ca.pem

如下图所示,在【集群】->【管理】页面,在基本信息中选择【certificate-authority-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >ca.pem

c662ae7eba796398727a312255a758cd80d52339

b)      获取cert.pem

如下图所示,在【集群】->【管理】页面,在基本信息中选择【client-certificate-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >cert.pem

c5e88bd78ebb72c721d3a148b12dc320cadba623

c)      获取key.pem

如下图所示,在【集群】->【管理】页面,在基本信息中选择【client-key-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >key.pem

70e8905dce3a69cedd83493d1e9cea7066662e99

3、         API示例

a)      通过curl调用

调用方式:

curl -k --cacert ./ca.pem --cert ./cert.pem --key ./key.pem https://endpoint:6443/api/v1

 

b)      通过代码调用

以go语言为例如下:

ee85de27073cf95b05d77d1d7a3d6001cbf59cae


猜你喜欢

转载自yq.aliyun.com/articles/637121
今日推荐