K8s API快速入门

前言

上一篇文章《Docker Restful API快速入门》介绍了有关Docker API的快速入门,今天这个文章给大家介绍一下K8s API的入门。

 

下载K8s的API, k8s的API是OPENAPI的标准,可以从github.com/gohutool/docker.ui项目进行下载, 文件名k8s.swagger.json

导入方法

打开Postman,点击File-》Import

如图这里就已经成功的导入了K8s的API至Postman里, 接下来,我们测试一个响应的API, 查看Pods

执行出现错误

[root@CENTOS-01 ~]# curl --insecure https://192.168.56.114:6443/api/v1/namespaces/ns-test/pods

 

这个错误是由于没有输入token,K8s比docker设计的更加的完善, APIServer的调用是基于K8s的RABC的认证方式;没有token标识,是用anonymous进行访问,而k8s默认anonymous是没有开启访问权限的。 

接下来,使用token进行访问

建立ROOT用户,并使用TOKEN访问

[root@CENTOS-01 ~]# kubectl create sa root
[root@CENTOS-01 ~]# kubectl get sa root -o json
{
    "apiVersion": "v1",
    "kind": "ServiceAccount",
    "metadata": {
        "creationTimestamp": "2022-03-24T16:59:24Z",
        "name": "root",
        "namespace": "default",
        "resourceVersion": "45032",
        "uid": "18deddf8-08b8-4f4a-bd0f-48fb9a56ea7a"
    },
    "secrets": [
        {
            "name": "root-token-bsctg"
        }
    ]
}

[root@CENTOS-01 ~]# kubectl describe secret root-token-bsctg
Name:         root-token-bsctg
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: root
              kubernetes.io/service-account.uid: 18deddf8-08b8-4f4a-bd0f-48fb9a56ea7a

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6ImdiS1hCWGlJemxQc3U1d2FIOGNfTUctMFNUMnR6a1lPNTBHakVrTDVYaTAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InJvb3QtdG9rZW4tYnNjdGciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicm9vdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjE4ZGVkZGY4LTA4YjgtNGY0YS1iZDBmLTQ4ZmI5YTU2ZWE3YSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OnJvb3QifQ.i2M_aaM5QvIcFeKq_WViVzvrE8LwaOiP7F6EgmfITZJVFqg77pEns5Gx7uvQqAP2WUaFq_5kvKI5-ArWIO5pky40MyYMWOccI19HXZXlFwL9Z0_JelwMNQtoAVloVqwggm8hRjcytRhl5CDZTEUPZRs5S0EqUEytrr_C_0VCx5KDJXYlQCYdVBMWF91dLmlA92v2J3PnWZ9Kwd-ggreWGng7Orjdhjf-BXW1PdLKuicS8DLdpORA49x-BHTrGnDNZig_g3ypfRbv8Jk_TS0w_pDMq6dgEjx4hd7M6gSpAbxSeJ3eT0lLYZrgXU1obWzSy4ZgLUyIn4moELsZnsZq2A
ca.crt:     1099 bytes
namespace:  7 bytes

复制TOKEN,如图中所标识的,就是root用户对应的TOKEN; 把这里TOKEN复制后,在POSTMAN进行设置。

 

现在Token已经设置正确, 还需要给root这个用户,对应的APIServer的访问权限

kubectl create clusterrolebinding apiadmin \
--clusterrole cluster-admin --serviceaccount \
default:root
[root@CENTOS-01 ~]# kubectl describe clusterrolebinding apiadmin 
Name:         apiadmin
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  cluster-admin
Subjects:
  Kind            Name  Namespace
  ----            ----  ---------
  ServiceAccount  root  default

权限已经成功授权。

进行最后的测试

[root@CENTOS-01 ~]# aaaa='eyJhbGciOiJSUzI1NiIsImtpZC...y4ZgLUyIn4moELsZnsZq2A'
[root@CENTOS-01 ~]# curl -H "Authorization: Bearer $aaaa" \
--insecure \
https://192.168.56.114:6443/api/v1/namespaces/ns-test/pods

结束语

本文通过对K8s API和Postman的介绍; 介绍了如何通过Postman可以对K8s API进行查看和调试; 这个对K8s API的开发非常的高效, KubeUI在对K8s进行管理的功能,都是基于K8s API的调用,也都是使用这样的方法进行调试的。 非常的高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值