- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试将我们的应用程序连接到 stackdriver profiler,但似乎由于权限问题而失败。
我们正在 GKE 上运行 Java 应用。
下面是Dockerfile
FROM gcr.io/google-appengine/jetty
RUN mkdir -p /opt/cprof && \
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
| tar xzv -C /opt/cprof
RUN java \
-agentpath:/opt/cprof/profiler_java_agent.so=-cprof_service=gke,-logtostderr,-minloglevel=0,-cprof_service_version=1.0.0,-cprof_gce_metadata_server_retry_sleep_sec=10,-cprof_gce_metadata_server_retry_count=12 \
-jar "$JETTY_HOME/start.jar" --create-startd --add-to-start=gcloud,http2c --approve-all-licenses
ENV JETTY_ARGS -Djava.util.logging.config.file=WEB-INF/flex.logging.properties
ENV DBG_ENABLE true
ADD . $APP_DESTINATION_EXPLODED_WAR
ENV JAVA_USER_OPTS -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics -Xloggc:/tmp/logs.gc
集群已使用以下命令创建:-
gcloud beta container clusters create $cluster_name --machine-type=n1-highmem-8 --project=$project_id --zone=us-central1-c --scopes="cloud-platform" --num-nodes=2
我们按照 profiling-java 中的步骤配置 Dockerfile
,但是分析器失败并显示以下消息。
创建配置文件失败,将重试:7(调用者没有权限)
检查下面的完整部署日志:-
12:53:42 starting build "18a3a03c-6dc8-4683-8fae-92ec22aa84a8"
12:53:42
12:53:42 FETCHSOURCE
12:53:42 Fetching storage object: gs://project_id_cloudbuild/source/1562838709.77-78c301e261714cd2a46391b235d5edc5.tgz#1562838738548166
12:53:42 Copying gs://project_id_cloudbuild/source/1562838709.77-78c301e261714cd2a46391b235d5edc5.tgz#1562838738548166...
12:53:42 / [0 files][ 0.0 B/239.8 MiB]
-
- [0 files][ 56.0 MiB/239.8 MiB]
\
|
| [0 files][165.0 MiB/239.8 MiB]
/
/ [1 files][239.8 MiB/239.8 MiB]
12:53:42 Operation completed over 1 objects/239.8 MiB.
12:53:42 BUILD
12:53:42 Already have image (with digest): gcr.io/cloud-builders/docker
12:53:42 Sending build context to Docker daemon 396.6MB
12:53:42 Step 1/8 : FROM gcr.io/google-appengine/jetty
12:53:42 latest: Pulling from google-appengine/jetty
12:53:42 Digest: sha256:7e37b8561b2f25660d1aa492dea4f09a6121fe7f8b7f6b2e9f8c65e1cf33328e
12:53:42 Status: Downloaded newer image for gcr.io/google-appengine/jetty:latest
12:53:42 ---> dac4353b3a0c
12:53:42 Step 2/8 : RUN mkdir -p /opt/cprof && wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz | tar xzv -C /opt/cprof
12:53:42 ---> Running in 3799f9af9c33
12:53:42 NOTICES
12:53:42 profiler_java_agent.so
12:53:42 Removing intermediate container 3799f9af9c33
12:53:42 ---> 8cd480829757
12:53:42 Step 3/8 : RUN java -agentpath:/opt/cprof/profiler_java_agent.so=-cprof_service=gke,-logtostderr,-minloglevel=0,-cprof_service_version=1.0.0,-cprof_gce_metadata_server_retry_sleep_sec=10,-cprof_gce_metadata_server_retry_count=12 -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start=gcloud,http2c --approve-all-licenses
12:53:42 ---> Running in bad2457cd65c
12:53:42 [91mI0711 09:52:57.100730 7 entry.cc:268] Profiler agent loaded
12:53:42 [0m[91mI0711 09:52:57.105134 7 entry.cc:154] Prepare JVMTI
12:53:42 [0m[91mI0711 09:52:57.301863 7 entry.cc:108] On VM init
12:53:42 [0m[91mI0711 09:52:57.304172 7 cloud_env.cc:136] Project ID is not set via flag or environment, will get from the metadata server
12:53:42 [0m[91mI0711 09:52:57.304981 7 throttler_api.cc:269] Will use profiler service cloudprofiler.googleapis.com to create and upload profiles
12:53:42 [0m[91mI0711 09:52:57.315691 15 throttler_api.cc:202] Initialized deployment: project_id=project_id, service=gke, service_version=1.0.0, zone_name=us-central1-f
12:53:42 [0m[91mI0711 09:52:57.320428 15 throttler_api.cc:302] Creating a new profile via profiler service
12:53:42 [0m[91mW0711 09:52:57.539041 15 throttler_api.cc:382] Failed to create profile, will retry: 7 (The caller does not have permission)
12:53:42 [0m[91mINFO [0m[91m: [0m[91mAll Licenses Approved via Command Line Option[0m[91m
12:53:42 [0m[91mINFO [0m[91m: [0m[91mgcloud initialized in ${jetty.base}/start.d/gcloud.ini[0m[91m
12:53:42 [0m[91mINFO [0m[91m: [0m[91mhttp2c initialized in ${jetty.base}/start.d/http2c.ini[0m[91m
12:53:42 [0m[91mINFO [0m[91m: [0m[91mBase directory was modified[0m[91m
12:53:42 [0m[91mI0711 09:52:58.506006 7 entry.cc:143] On VM death
12:53:42 [0m[91mI0711 09:53:25.504830 15 throttler_api.cc:302] Creating a new profile via profiler service
12:53:42 I0711 09:53:25.505025 15 worker.cc:177] Exiting the profiling loop
12:53:42 [0mRemoving intermediate container bad2457cd65c
12:53:42 ---> e9a969345ed1
12:53:42 Step 4/8 : ENV JETTY_ARGS -Djava.util.logging.config.file=WEB-INF/flex.logging.properties
12:53:42 ---> Running in d3e4b6456694
12:53:42 Removing intermediate container d3e4b6456694
12:53:42 ---> 52deb5efe19d
12:53:42 Step 5/8 : ENV DBG_ENABLE true
12:53:42 ---> Running in 6bd2b94ae0fc
12:53:42 Removing intermediate container 6bd2b94ae0fc
12:53:42 ---> 9800d1e2d074
12:53:42 Step 6/8 : ADD . $APP_DESTINATION_EXPLODED_WAR
12:53:42 ---> e1d7881f4558
12:53:42 Step 7/8 : ENV JAVA_USER_OPTS -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics -Xloggc:/tmp/logs.gc
12:53:42 ---> Running in 81247ccde74f
12:53:42 Removing intermediate container 81247ccde74f
12:53:42 ---> d66dbce64869
12:53:42 Step 8/8 : ENV GCLOUD_PROJECT project_id
12:54:07 ---> Running in af00f02783b7
12:54:07 Removing intermediate container af00f02783b7
12:54:07 ---> 77826e33ef3c
12:54:07 Successfully built 77826e33ef3c
12:54:07 Successfully tagged gcr.io/project_id/ram-image:1
12:54:07 PUSH
12:54:07 Pushing gcr.io/project_id/ram-image:1
12:54:07 The push refers to repository [gcr.io/project_id/ram-image]
我们用来部署的服务帐户有roles/cloudprofiler.agent
,但它仍然失败。知道我们缺少什么权限吗?
更新:GKE 节点使用 the default compute engine service account ,我向其中添加了 roles/cloudprofiler.agent
但仍然出现相同的错误。
最佳答案
我也遇到了同样的问题,在我的例子中,这个特定的 GKE 服务有自己的服务帐户,有权访问 BigQuery 数据集,并且 key 被放置到 /var/secrets/google/key.json
在容器内部,以便应用程序 BiqQuery lib 在启动期间以及 GOOGLE_APPLICATION_CREDENTIALS 环境变量中找到它,这里的问题可能是探查器代理看起来也在检查在此变量中设置的路径,当它启动时,如果它找到它 - 它开始将它用于对 cloudprofiler.googleapis.com 的所有请求。有关这方面的一些信息可以在这里找到 - https://cloud.google.com/profiler/docs/profiling-external#using_service_accounts解决方案之一可能是为此服务帐户提供访问 google profiler 服务的额外权限。
此外,如果您的情况并非如此,您应该检查附加到 GKE 节点的默认服务帐户的权限,更多信息请参见此处 - https://cloud.google.com/kubernetes-engine/docs/how-to/hardening-your-cluster
Each GKE node has an IAM Service Account associated with it. By default, nodes are given the Compute Engine default service account, which you can find by navigating to the IAM section of the Cloud Console.
希望这可以帮助别人。
关于java - 由于在 GKE 上运行 Java 的权限,Stackdriver Profiler 无法创建配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56989993/
我有标准 GKE 集群,并且希望将所有正在运行的服务迁移到新的 Autopilot 集群。我研究了官方文档,但没有找到任何如何执行此迁移的信息 最佳答案 目前,此操作无法将 Standard GKE
我最近设置了一个 GKE 自动驾驶仪,但意识到它不支持 cert-manager 所依赖的 webhook。我们必须向 GKE 自动驾驶集群添加/管理 SSL 证书的其他选项是什么? 最佳答案 截至
我在 K8s 1.14.10 上创建了两个单独的 GKE 集群。 VPN access to in-house network not working after GKE cluster upgrad
我注意到我们的 gke 集群系统 pod (gke-metrics-agent) 内存不足。我试图编辑 daemonset yaml 文件以将内存请求增加到 200Mi 并将内存限制增加到 200Mi
我有多个在 GKE 上运行的 kubernetes 集群(假设是 clusterA 和 clusterB) 我想在其中一个集群中运行的应用程序中从 client-go 访问这两个集群(例如,从在 cl
如何将已有的GKE集群改成GKE私有(private)集群?我是否能够根据防火墙规则从 Internet 连接到 Kubectl API,或者我应该有一个堡垒主机吗?我不想实现 Cloud Nat 或
我目前正在运行一个区域性 GKE 集群,并希望迁移到一个新的区域性集群。旧集群有一个带有公共(public) IP 的入口对象,使用谷歌托管证书来终止 HTTPS。 我的迁移计划是: 创建新的区域集群
我们有一个 GKE 集群: 版本为 1.6.13-gke.0 的主节点 2 个版本为 1.6.11-gke.0 的节点池 我们已激活 Stackdriver Monitoring 和 Logging。
从昨天开始,我在 K8s 上遇到了一个奇怪的错误(使用 GKE) 我有一个运行 1 个 pod 的部署。我删除了部署,它用于终止 pod 和使用它的副本集。 但是现在,如果我删除部署,副本集不会被删除
我正在使用 Google 容器引擎。现在我想要在我的集群中使用自动缩放功能。根据文档 GKE 自动调节程序 在 测试版 .我还可以在 中启用自动缩放实例组即管理集群节点。 集群自动缩放器添加/删除节点
我想在Google容器引擎中运行nexus3。 我创建了一个永久磁盘,并配置了以下部署文件: apiVersion: apps/v1beta1 kind: Deployment metadata:
我正在寻找从 kubernetes 中的 pod 捕获日志以用于两个用例: 实时 -> 我正在使用 kubectl logs ---现在 非实时 -> 使用 stackdriver用管道传送到 big
我已经在Google云中创建了具有以下规范的节点端口服务...我创建了防火墙规则,以允许端口'30100'的流量从0.0.0.0/0开始,我已经验证了堆栈驱动程序日志,并且在发生流量时我使用curl或
我注意到我在GKE上部署的服务有些奇怪,我想了解... 当我启动kubectl get services时,我可以看到我的服务EXTRNAL-IP。假设35.189.192.88。那就是我用来访问我的
我最近在优化集群 (GKE) 利用率,两天前我注意到我的节点没有扩大或缩小。自动缩放配置映射处于初始化模式: kubectl describe -n kube-system configmap clu
目前,我可以从GoogleCloudPlatform管理控制台屏幕上获取各种信息,但是将来我希望使用API来获取信息。 获得的信息如下。 Kubernetes Engine>Clusters>Cl
我正在尝试在 GKE 上设置我的应用程序并使用内部负载均衡器进行公共(public)访问。我能够毫无问题地部署集群/负载均衡器服务,但是当我尝试访问负载均衡器的外部 IP 地址时,我得到连接被拒绝,我
默认情况下,可从同一集群访问ClusterIP类型的Kubernetes服务。是否可以将GKE中的服务配置为可从同一VPC访问?例如,同一VPC中的GCE VM可以访问GKE中的服务,但我不想将其公开
GKE 使用 kubenet用于在 VPC 中设置容器接口(interface)和配置路由的网络插件,以便容器可以在不同主机上相互访问。 维基百科定义了一个 overlay作为建立在另一个网络之上的计
首先对于我的问题,我需要谈谈我的环境: Google 基本设置:1x f1-micro 实例,3 个节点 Kubernetes 设置:nginx-ingress-controller、cert-man
我是一名优秀的程序员,十分优秀!