每次创建了新的 namespace 下都会生成一个默认的 token,名为 default-token-xxxx。default 就相当于该 namespace 下的一个用户。也可以考虑新建 service account 来获取 token。

查看 token secret

1
2
3
[root@k3s-release-server1 ~]# kubectl get secrets
NAME TYPE DATA AGE
default-token-6f7xb kubernetes.io/service-account-token 3 16m

使用脚本方式访问 API

1
2
3
4
5
6
7
8
#!/usr/bin/env bash
url=$1
token=`kubectl get secrets|awk 'NR>1'|awk '{print $1}'|xargs -i kubectl describe secret {} |grep token: |awk -F: '{print $2}'|sed s/' '//g`
if [ -n "$url" ]; then
curl --insecure "$url" --header "Authorization: bearer $token"
else
curl --insecure https://127.0.0.1:6443/api --header "Authorization: bearer $token"
fi