k8s相关小知识

1. 常用命令

kubectl get secret  #列出所有命名空间内的机密
kubectl get secret  xxxx -o yaml #详细查看

cat /var/run/secrets/kubernetes.io/serviceaccount/token #pod内执行,查看token

kubectl auth can-i --list --token= #查看当前token可以使用的权限

2. 知识点

  • /var/run/secrets/kubernetes.io/serviceaccount/token 是 ​Kubernetes 自动挂载到每个 Pod 中的 ServiceAccount Token,用于 Pod 与 Kubernetes API Server 的安全通信
  • 在 Kubernetes Pod 中执行 kubectl auth can-i --list 命令,本质上是通过 Pod 挂载的 ​ServiceAccount Token​(默认路径 /var/run/secrets/kubernetes.io/serviceaccount/token)向 Kubernetes API Server 发起权限查询,返回当前 ServiceAccount 被授权的所有操作权限列表
  • 在1.24以上的版本中,由于ServiceAccount Token 机制变化。​默认不再自动创建 Token Secret,而是改用 ​TokenRequest API​(动态生成短期 Token)参考 3.k8s-拓展知识