当前很多用户有对接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公网连接端点”。
2、 获取token
a) 在获取API Server endpoint页面查看“通过kubectl连接kubernetes集群”,获取登录kubernetes集群方式;
b) 通过kubectl获取token,命令如下图所示。
i. kubectl get secrets -n kube-system admin-token-xwk4s -o yaml,在这里我们选取admin的secret,可以根据实际情况进行角色的选取;
ii. 选择其中的token,该token是base64编码过的;
iii. 对该token进行decode获取真实的token;
echo “token”|base64 --decode
3、 API使用示例
a) 通过postman发送请求
将上面获取到的token填入header,格式为Authorization:Bearer [token]
b) 通过代码实现
在代码中的消息header中同样添加Authorization:Bearer [token]即可;
方式二 通过证书来访问
1、 获取API Server endpoint
同方式一;
2、 获取证书
a) 获取ca.pem
如下图所示,在【集群】->【管理】页面,在基本信息中选择【certificate-authority-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >ca.pem
b) 获取cert.pem
如下图所示,在【集群】->【管理】页面,在基本信息中选择【client-certificate-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >cert.pem
c) 获取key.pem
如下图所示,在【集群】->【管理】页面,在基本信息中选择【client-key-data】中的数据,该数据是base64编码过的,使用的话需要解码。命令:echo “xxxxxxxxxxxxxxxx”|base64 --decode >key.pem
3、 API示例
a) 通过curl调用
调用方式:
curl -k --cacert ./ca.pem --cert ./cert.pem --key ./key.pem https://endpoint:6443/api/v1
b) 通过代码调用
以go语言为例如下: