Как добавить учетную запись службы GCP в рабочую нагрузку / проект Kubernetes

Я пытаюсь добавить учетную запись Y службы GCP, у которой есть доступ к определенному хранилищу с именем security-keychain. Я пытаюсь выяснить, какие настройки или изменения необходимы, чтобы мой текущий проект мог получить доступ к указанной учетной записи службы, а затем к корзине.

Я просматривал https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ но не чувствовал, что это дало много понимания.

Вот мой текущий конфиг GCP Kubernetes для этого проекта. Мой проект будет обратным прокси-сервером nginx, если вам интересно, и у корзины есть доступ ко всем SSL-сертификатам и ключам, которые мне нужны.

deployment.yml

apiVersion: extensions/v1
kind: Deployment
metadata:
  labels:
    run: my-project
  name: my-project
spec:
  replicas: 4
  selector:
    matchLabels:
      run: my-project
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: my-project
    spec:
      containers:
      - image: gcr.io/my-company/my-project
        imagePullPolicy: Always
        name: my-project
        resources:
          limits:
            cpu: "800m"
            memory: 4Gi
          requests:
            cpu: "500m"
            memory: 2Gi
        ports:
        - containerPort: 80
          protocol: TCP
        - containerPort: 443
          protocol: TCP
        securityContext:
           capabilities: {}
           privileged: true
           capabilities:
            add:
              - SYS_ADMIN
        lifecycle:
          postStart:
            exec:
              command: ["gcsfuse", "-o", "nonempty", "security-keychain", "/mnt/security-keychain"]
          preStop:
            exec:
              command: ["fusermount", "-u", "/mnt/security-keychain"]

service.yml

apiVersion: v1
kind: Service
metadata:
  name: my-project-service # service name
spec:
  type: LoadBalancer # gives your app a public IP so the outside world can get to it
  loadBalancerIP: 99.99.99.99 # declared in VPC Networks > External IP Addresses in GCP Console
  ports:
    - port: 80 # port the service listens on
      targetPort: 80 # port the app listens on
      protocol: TCP
      name: http
    - port: 443 # port the service listens on
      targetPort: 443 # port the app listens on
      protocol: TCP
      name: https
  selector:
    run: my-project

1 ответ

Вы можете следовать этому руководству, чтобы заархивировать свою цель, если ваша архитектура подразумевает, что вы должны использовать служебную учетную запись. Помните, что вы можете напрямую подключить модуль / контейнер Kubernetes к корзине Google Cloud Storage, следуя этому другому руководству.

Другие вопросы по тегам