你可以将编码后的token数据复制并粘贴到https://jwt.io/ 以查看有效载荷。使用你选择的编辑器输入以下yaml文件(test-pod.yaml),以运行一个pod:
apiVersion: v1 kind: pod metadata: name: test-pod spec: serviceAccountName: testuser container: - name: alpine:3.7 command: - "sh" - "-c" - "sleep 100"然后使用以下命令启动pod:
kubectl apply -f test-pod.yaml使用describe可以查看更详细的内容:
kubectl describe test-pod
现在,我们有一个正在运行的pod,名为test-pod,让我们进入交互模式并运行一个shell:
kubectl exec -it test-pod -- sh
如果你想在docker容器内运行shell,所使用的命令与docker命令类似。这时,我们将会收到一个提示,然后进入Alpine Linux系统,该系统是在pod中的一个容器内运行的。为了打开被复制到容器中的token,你需要运行以下命令:
cat /var/run/sercrets/kubernetes.io/serviceaccount/token复制输出并将该token粘贴在https://jwt.io/上Encoded部分。在另一边你会得到token的类型、命名空间、ServiceAccount名称、密钥名称等。
这几乎以一种十分直观的方式向你说明了Kubernetes如何在token中进行身份验证有效载荷。