ZBLOG

k8s设置token只能用于某POD

可以通过以下步骤将 Kubernetes 中的 Service Account Token 绑定到某个 Pod 上,使得该 Pod 可以使用该 Service Account 的 Token 来进行 API 访问:

  1. 创建一个带有指定 Service Account 的 Pod。
   apiVersion: v1
   kind: Pod
   metadata:
     name: my-pod
   spec:
     serviceAccountName: <service-account-name>
     containers:
       - name: my-container
         image: nginx
         ports:
           - containerPort: 80
  1. 在 Pod 中挂载相关目录,以使得容器中的应用程序能够访问该 Service Account 的 Token。下面是一些示例:
  • 使用环境变量来传递 Token
  apiVersion: v1
  kind: Pod
  metadata:
    name: my-pod
  spec:
    serviceAccountName: <service-account-name>
    containers:
      - name: my-container
        image: nginx
        ports:
          - containerPort: 80
        env:
          - name: SA_TOKEN_FILE
            valueFrom:
              fieldRef:
                fieldPath: "spec.serviceAccountToken.volumeMounts[0].mountPath/..data/token"
        volumeMounts:
          - mountPath : /var/run/secrets/kubernetes.io/serviceaccount/
            name      : sa-token-mount-volume

    volumes:
      - name : sa-token-mount-volume 
        secret :
          secretName : default-token-km9kk

  • 直接使用文件路径传递 Token
  apiVersion: v1
  kind: Pod
  metadata:
    name: my-pod
  spec:
    serviceAccountName: <service-account-name>
    containers:
      - name: my-container
        image: nginx
        ports:
          - containerPort: 80
        volumeMounts:
          - mountPath : /var/run/secrets/kubernetes.io/serviceaccount/token 
            name      : sa-token-mount-volume

    volumes:
      - name : sa-token-mount-volume 
        secret :
          secretName : default-token-km9kk

注意,在上面的示例中,<service-account-name> 指定了该 Pod 所使用的 Service Account 的名称。此外,为了将 Token 文件挂载到容器中,需要在 Pod 中定义一个 Volume,并将该 Volume 挂载到容器中。

最后,在应用程序中可以通过环境变量或文件路径来获取 Token,并进行 API 访问。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5664

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?