我正在使用GKE和Terraform配置一个高可用的kubernetes集群。多个团队将在集群上运行多个部署,我预计大多数部署将在一个自定义命名空间中,主要是出于隔离的原因。
我们的一个开放问题是如何管理集群上的GCP服务帐户。
我可以使用自定义GCP服务帐户创建集群,并调整权限,以便它可以从GCR中提取映像,日志到stackdriver等。我认为这个自定义服务帐户将被GKE节点使用,而不是默认的compute engine服务帐户。如果我在这方面错了,请纠正我!
Google_Default_Credentails
设置为指向它你在正确的轨道上。GCP服务帐户可以在GKE中用于PODs为GCP资源分配权限。
创建帐户:
cloud iam service-accounts create ${SERVICE_ACCOUNT_NAME}
将IAM权限添加到服务帐户:
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role='roles/${ROLE_ID}'
gcloud iam service-accounts keys create \
--iam-account "${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
service-account.json
kubectl create secret generic echo --from-file service-account.json
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
spec:
replicas: 1
selector:
matchLabels:
app: echo
template:
metadata:
name: echo
spec:
containers:
- name: echo
image: "gcr.io/hightowerlabs/echo"
env:
- name: "GOOGLE_APPLICATION_CREDENTIALS"
value: "/var/run/secret/cloud.google.com/service-account.json"
- name: "PROJECT_ID"
valueFrom:
configMapKeyRef:
name: echo
key: project-id
- name: "TOPIC"
value: "echo"
volumeMounts:
- name: "service-account"
mountPath: "/var/run/secret/cloud.google.com"
volumes:
- name: "service-account"
secret:
secretName: "echo"
我试图创建一个服务帐户与一个已知的,固定的令牌Jenkins使用,以部署到Kubernetes的东西。我使用以下YAML创建了令牌:
我想为Kubernetes服务分配一个静态(即非临时)区域IP。目前,该服务属于“LoadBalancer”类型,GCP将其公开为一个区域TCP负载平衡器。默认情况下,转发规则的IP地址是临时的。是否有任何方法可以使用现有的静态ip或按名称分配自己的地址(如使用入口/HTTP负载平衡器可能)? 我还尝试使用该服务的节点端口使用自定义静态区域IP创建自己的转发规则。我只使用实际的节点端口成功地构建了
试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv
我开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。 这是我的代码:https://github.com/maartinpii/gcp-shst 我按照谷歌云平台指南(参考:https://cloud.google.com/iam/docs/understanding-service-accounts https://cloud.google.
我正在尝试在GCP中使用Python创建一个服务帐户。当我将env var GOOGLE_APPLICATION_凭证设置为JSON凭证文件,并使用以下代码时,这一切都很好: 但是,以下代码在使用Workload Identity Federation的CI-Github操作中失败: 失败与错误: 我正在使用以下Github操作向Google进行身份验证 有人能帮忙吗?
我在一个GCP项目中构建了一个Google Kubernetes引擎(GKE)集群。 根据集群上运行的应用程序的不同用例,我将应用程序与不同的服务帐户和不同的授予权限相关联。为此,我将Google服务帐户(GSA)与库伯内特斯集群服务帐户(KSA)绑定如下: 参考:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-ide