google-kubernetes-engine - 无法在 stackdriver 中获取 Istio 网关日志
问题描述
我已经在启用了 WLI 的私有 GKE 上部署了 Istio。Istio 正在使用Istioctl
和安装istio-operator
。我想查看我的出站请求是否卡在任何地方并且我无法看到,因此我收到以下错误:
CreateTimeSeries request failed (1 RPCs, 16 views, 20 timeseries): PERMISSION_DENIED: Permission monitoring.timeSeries.create denied (or the resource may not exist)
. 我可以看到附加到网关的服务帐户是istio-egressgateway-service-account,它不是由我明确创建的。我认为这是由ISTIO创建的。所以我想了解如何解决这个问题。我有点担心将此服务帐户附加到 GCP IAM 服务帐户,因为它由 Istio 管理,我不想打扰它。
是因为工作负载身份(WLI)还是其他原因?我该如何解决这个问题。任何想法和帮助将不胜感激。GKE 版本:1.17.9-gke.1504 Istio 版本 1.7.x
解决方案
对于正在搜索和查看此页面的任何人:
参考: GKE 工作负载标识
export GCP_PROJECT=my-project
export GCP_SA=gke-prometheus
export K8S_SA=prometheus
export K8S_NS=prometheus
gcloud iam service-accounts create ${GCP_SA} --display-name=${GCP_SA}
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:${GCP_PROJECT}.svc.id.goog[${K8S_NS}/${K8S_SA}]" \
${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com
gcloud projects add-iam-policy-binding ${GCP_PROJECT} \
--member "serviceAccount:${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com" \
--role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding ${GCP_PROJECT} \
--member "serviceAccount:${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com" \
--role roles/monitoring.viewer
gcloud projects add-iam-policy-binding ${GCP_PROJECT} \
--member "serviceAccount:${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com" \
--role roles/logging.logWriter
gcloud projects add-iam-policy-binding ${GCP_PROJECT} \
--member "serviceAccount:${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com" \
--role roles/stackdriver.resourceMetadata.writer
kubectl annotate serviceaccount ${K8S_SA} \
iam.gke.io/gcp-service-account="${GCP_SA}@${GCP_PROJECT}.iam.gserviceaccount.com" \
-n ${K8S_NS}
推荐阅读
- python - 拆分为具有特定行属性值的训练集和测试集
- amazon-web-services - cloudfront 给出“您的连接不是私有的”错误
- python - Groupby into list for non consecutive values
- arrays - 无法设置未定义的属性“元素” - Angular中的数组
- javascript - 使用 JavaScript 更改可见性时如何使用过渡/动画?
- python - 在 VS Code Insiders for Python Native Notebook 中哪里可以找到数据查看器/变量资源管理器?
- reactjs - 反应 CRA 代理问题
- c# - 将自定义类型作为命令参数传递
- postgis - 完整的新手问题:我想通过命令提示符删除一个表(postgis)
- reactjs - 如何在反应 js 中模拟嵌套组件导入并使用反应测试库进行测试