当前位置: 首页 > 知识库问答 >
问题:

如何为GKE部署中的Pod指定ServiceAcCountName。山羊

萧展鹏
2023-03-14

我已经为工作负载标识配置集群和节点池(https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity)但为了让它工作,我还需要让我的POD使用我为工作负载标识创建的kubernetes服务帐户。

我知道我可以在pod的YAML中指定serviceAccountName,但如何使用使用部署的Google CI/CD来实现这一点呢。亚马尔?或者我可以引用pod的YAML作为部署中的规范模板。亚马尔?抱歉,我是k8s的新手!

裁判https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

本质上,我只是想让工作负载标识与我的应用程序一起工作,所以GOOGLE_APPLICATION_CREDENTIALS由Google设置,以便在我的应用程序中使用!

我在我的deployment.yaml中尝试了以下操作,但我在io.k8s.api.core.v1中得到了错误未知字段serviceAcCountName。容器;

spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-application
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: my-application
    spec:
      containers:
        - image: >-
            gcr.io/my-project/github.com/my-org/my-repo
          imagePullPolicy: IfNotPresent
          name: my-application
          serviceAccountName: my-k8s-svc-acct

共有2个答案

邢嘉祯
2023-03-14

压痕是错误的

应该是这样的

spec:
  containers:
    - image: nginx
      name: nginx
  serviceAccount: 
  serviceAccountName: 
谭毅然
2023-03-14

serviceAccountName是pod spec对象的属性,而不是容器的属性。所以,它应该是:

spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-application
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: my-application
    spec:
      serviceAccountName: my-k8s-svc-acct
      containers:
        - image: >-
            gcr.io/my-project/github.com/my-org/my-repo
          imagePullPolicy: IfNotPresent
          name: my-application
      
 类似资料:
  • 我已经在应用程序中添加了这些字段。pom中微服务和依赖关系的yml。xml。Jaeger在my local上运行也可以识别服务 我已经在kubernetes上部署了所有的微服务。请帮助我在kubernetes部署jaeger。 更新:我已达到此步骤。我有一个用于jaeger查询的负载平衡器IP。但是我的微服务将把日志发送到哪个主机和端口??

  • null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?

  • 我正在查找Kong API网关,并通过Google Cloud Marketplace在GKE上部署了一个Kong实例。我想向这个实例添加一个自定义的Kong插件,并为我的服务启用它。我怎么做呢?有什么资源可以让我对这件事有所了解吗?非常感谢。

  • 我有3个节点在kubernetes集群。我创建了一个守护进程集,并将其部署在所有3个设备中。这个守护进程集创建了3个Pod,它们正在成功运行。但是由于某些原因,其中一个吊舱失败了。 我需要知道如何在不影响守护程序集中的其他pod的情况下重新启动这个pod,也不创建任何其他守护程序集部署? 谢啦

  • 我在minikube上有几个本地的操作部署,并试图用Kubernetes在GCP上部署它们。 当我描述由部署创建的pod(它创建了一个生成pod的复制集)时: 它表明它降落在一个kubernetes VM上。 我是否引入了一个由Kubernetes编排的vm?我是否扩大kubernetes节点?还是别的什么一起?

  • 我使用CocoaPods来管理项目中的依赖关系。我写过Podfile: 这个文件在CocoaPods 0.x上运行良好,但是在我升级到CocoaPods 1.0后,我无法编译project。在我跑完之后 我无法用错误编译我的项目: /用户/ 我发现每个库都有不同的部署目标。例如,KeepLayout是用4.3部署目标构建的。 如何确定每个 Pod 依赖项的构建目标?