首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes使用单一服务帐户令牌秘密

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

Stack Overflow用户
提问于 2022-08-18 18:34:18
回答 1查看 89关注 0票数 0

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

我总是想当然地认为,我将在kubernetes名称空间中自动生成这些服务帐户令牌,最后带有一个随机字符串,如下所示:

service-account-token-qrs88x

我以为这会自动进入我所有的豆荚中,但似乎每个豆荚都有自己的标记。

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

如果我不能在一个吊舱内可靠地使用service-account-token-qrs88x,那么它有什么意义呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 19:10:52

我以为这会自动进入我所有的豆荚中,但似乎每个豆荚都有自己的标记。

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

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

代码语言:javascript
复制
kubectl create rolebinding default-view \
  --clusterrole=view \
  --serviceaccount=default:default \
  --namespace=default

这只是一个例子,你可以根据你的需要来分配基础。

每个Kubernetes安装都有一个名为default的服务帐户,它与每个运行的pod相关联。类似地,为了使pods能够调用内部API端点,有一个名为Kubernetes的ClusterIP服务。这种组合使内部进程能够调用API端点。

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

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

这将创建名为myserviceaccount的服务帐户。

代码语言:javascript
复制
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 }}

吊舱应该参考这个服务帐户。

代码语言:javascript
复制
    spec:
      imagePullSecrets:
        - name: {{ include "helm-chart.fullname" . }}
      volumes:
        - name: heap-dumps
          emptyDir: {}
      serviceAccountName: myserviceaccount    
      containers:.....

或者您可以从默认服务令牌中使用作为env的令牌,这样就不会对令牌名称进行中继。

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73407929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档