Как добавить учетную запись службы 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, следуя этому другому руководству.