繁体   English   中英

kubernetes 使用单数服务帐户令牌秘密

[英]kubernetes use singular service account token secret

我希望我的所有 pod 都具有相同的 kubernetes 服务帐户令牌,以便我的缓存代理将来自单个部署的所有请求视为等效。

我一直认为我会在 kubernetes 命名空间中自动获得这些服务帐户令牌,并在末尾带有一个随机字符串,如:

service-account-token-qrs88x

我认为这会自动将此令牌安装到我所有的 pod 中,但似乎每个 pod 都有自己的令牌。

我可以创建一个具有可靠名称的令牌,但我想知道是否可以通过使用这些自动生成的令牌秘密作为部署的一部分而不是每个 pod 获取自己的令牌来节省一些额外的配置。

如果我不能在 pod 内可靠地使用service-account-token-qrs88x ,那么它的意义何在?

我认为这会自动将此令牌安装到我所有的 pod 中,但似乎每个 pod 都有自己的令牌。

不,每个命名空间都只有default ,它可能是您创建随机服务帐户的部署。

默认服务帐户绑定到命名空间中的每个,因此您可以为默认 pod 分配权限,因为命名空间内的 pod 已经使用了此权限。

kubectl create rolebinding default-view \
  --clusterrole=view \
  --serviceaccount=default:default \
  --namespace=default

这只是示例,您可以根据需要进行分配。

每个 Kubernetes 安装都有一个名为 default 的服务帐户,它与每个正在运行的 pod关联。 同样,为了使 pod 能够调用内部 API 服务器端点,有一个名为 Kubernetes 的 ClusterIP 服务。 这种组合使得内部进程可以调用 API 端点。

默认秘密挂载到/tmp/secrets/kubernetes.io/serviceaccount/token

因此,如果您想使用服务令牌,例如,该服务帐户允许服务使用AWS s3或某些GCP 服务,那么您应该创建另一个服务并允许 pod 使用该服务。

这将创建名为myserviceaccount服务帐户

apiVersion: v1
kind: ServiceAccount
metadata:
  name: myserviceaccount
  annotations:
   eks.amazonaws.com/role-arn: {{ .Values.ses_role_arn }}
  namespace: {{ .Release.Namespace }}
  labels:
    app.kubernetes.io/name: {{ include "helm-chart.name" . }}
    helm.sh/chart: {{ include "helm-chart.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}

并且 pod 应该引用这个服务帐户

    spec:
      imagePullSecrets:
        - name: {{ include "helm-chart.fullname" . }}
      volumes:
        - name: heap-dumps
          emptyDir: {}
      serviceAccountName: myserviceaccount    
      containers:.....

在此处输入图像描述 在此处输入图像描述

或者您可以将令牌作为默认服务令牌的 env 使用,因此您不会中继令牌名称。


apiVersion: v1
kind: Secret
metadata:
  name: default-token
  annotations:
    kubernetes.io/service-account.name: default
type: kubernetes.io/service-account-token
---
apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
  - name: mycontainer
    image: nginx
    env:
      - name: KUBERNETES_TOKEN
        valueFrom:
          secretKeyRef:
            name: default-token
            key: token
  restartPolicy: Never

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM