簡體   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