小编Rob*_*cok的帖子

使用 REST API 向 Google Cloud Platform 上的服务帐户添加角色

我想创建使用Python脚本调用REST API GCP服务帐户,然后赋予它特定的角色-理想一些的这些,比如roles/logging.logWriter

首先,我请求创建一个工作正常的帐户,我可以在控制台/IAM 中看到该帐户。
其次,我想给它这个角色,似乎是正确的方法。但是,它不接受roles/logging.logWriter,说 HttpError 400,"Role roles/logging.logWriter is not supported for this resource.">
相反,如果我在控制台中设置了所需的策略,然后尝试该getIamPolicy方法(使用 gcloud 工具),我得到的只是 response etag: ACAB,没有提及我设置的实际角色。因此我认为这些角色指的是不同的东西。

知道如何使用 API 为服务帐户编写角色/范围的脚本吗?

rest amazon-iam service-accounts google-cloud-platform

13
推荐指数
2
解决办法
1万
查看次数

节点未就绪,待处理的pod

我正在GKE上运行一个集群,有时我会进入挂起状态.现在我只使用两个节点并允许群集自动缩放.其中一个节点具有NotReady状态,只是停留在其中.因此,由于CPU不足,我的一半pod正在等待.

我是怎么到那儿的

我从一开始就部署了一个具有相当高的CPU使用率的pod.当我将其缩放到2时,我注意到CPU使用率为1.0; 在我将部署扩展到3个副本的那一刻,我希望第三个处于Pending状态,直到集群添加另一个节点,然后在那里安排它.
相反,节点切换到NotReady状态,其上的所有pod现在都处于Pending状态.但是,节点没有重启或任何东西 - 它只是不被Kubernetes使用.然后GKE认为有足够的资源,因为VM有0 CPU使用率,并且不会扩展到3.我无法从控制台手动SSH到实例 - 它被卡在加载循环中.

我可以手动删除实例然后它开始工作 - 但我不认为这是完全管理的想法.

我注意到的一件事 - 不确定是否相关:在GCE控制台中,当我查看VM实例时,实例组和负载均衡器(这是nginx入口点周围的服务)正在使用Ready节点,但NotReady节点仅由实例组使用 - 而不是负载平衡器.

此外,kubectl get events有一条线:

Warning   CreatingLoadBalancerFailed   {service-controller }          Error creating load balancer (will retry): Failed to create load balancer for service default/proxy-service: failed to ensure static IP 104.199.xx.xx: error creating gce static IP address: googleapi: Error 400: Invalid value for field 'resource.address': '104.199.xx.xx'. Specified IP address is already reserved., invalid
Run Code Online (Sandbox Code Playgroud)

loadBalancerIP: 104.199.xx.xx在代理服务的定义中指定了以确保在每次重新启动时服务获得相同(保留)的静态IP.

有关如何防止这种情况发生的任何想法?因此,如果一个节点卡在NotReady状态,它至少会重新启动 - 但理想情况下不会进入这样的状态开始?

谢谢.

google-cloud-platform kubernetes google-kubernetes-engine

6
推荐指数
1
解决办法
1818
查看次数

连接被拒绝到 Kubernetes 中的 GCP LoadBalancer

当我在 GCP 的 Kubernetes Engine 中创建部署和服务时,连接被无缘无故拒绝。

该服务在 GCP 中创建了一个负载均衡器,并且所有相应的防火墙规则都已就位(允许从 到端口 80 的流量0.0.0.0/0)。当我kubectl exec进入 pod 并curl localhost:8000/得到正确响应时,底层服务运行良好。

此部署设置曾经适用于其他图像,但昨天和今天我不断收到

curl: (7) Failed to connect to 35.x.x.x port 80: Connection refused
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?我多次尝试删除并重新创建该服务,但没有成功。

kind: Service
apiVersion: v1
metadata:
  name: my-app
spec:
  selector:
    app: app 
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000
---
apiVersion: apps/v1beta2 
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes google-kubernetes-engine

6
推荐指数
1
解决办法
3166
查看次数

加载预先训练的word2vec以在Estimator model_fn中初始化embedding_lookup

我正在解决文本分类问题.我使用Estimator自己的类定义了我的分类器model_fn.我想使用Google的预训练word2vec嵌入作为初始值,然后针对手头的任务进一步优化它.

我看到这篇文章:在TensorFlow中使用预先训练的单词嵌入(word2vec或Glove),
它解释了如何在'原始'TensorFlow代码中进行处理.但是,我真的很喜欢Estimator上课.

作为扩展,我想在Cloud ML Engine上训练此代码,是否有一种传递具有初始值的相当大的文件的好方法?

假设我们有类似的东西:

def build_model_fn():
    def _model_fn(features, labels, mode, params):
        input_layer = features['feat'] #shape=[-1, params["sequence_length"]]
        #... what goes here to initialize W

        embedded = tf.nn.embedding_lookup(W, input_layer)
        ...
        return predictions

estimator = tf.contrib.learn.Estimator(
    model_fn=build_model_fn(),
    model_dir=MODEL_DIR,
    params=params)
estimator.fit(input_fn=read_data, max_steps=2500)
Run Code Online (Sandbox Code Playgroud)

word2vec tensorflow google-cloud-ml-engine

5
推荐指数
1
解决办法
1657
查看次数

删除Google Cloud Registry上的未标记图像

当我们反复gcr.io使用相同的图像名称和版本(标签)时,会出现大量未标记的图像.
是否有一种简单的方法可以从项目中删除所有未标记的图像,或者至少删除单个图像,以避免产生存储成本?

google-cloud-platform google-container-registry

5
推荐指数
3
解决办法
1414
查看次数

使用 GCP 进行自定义健康检查

嗨,我尝试将自定义运行状况检查与 GCP LoadBalancer 结合使用。

我已经添加readinessProbe&livenessProbe像这样:

    readinessProbe:
      httpGet:
        path: /health
        port: dash
      initialDelaySeconds: 5
      periodSeconds: 1
      timeoutSeconds: 1
      successThreshold: 1
      failureThreshold: 10
    livenessProbe:
      httpGet:
        path: /health
        port: dash
      initialDelaySeconds: 5
      periodSeconds: 1
      timeoutSeconds: 1
      successThreshold: 1
      failureThreshold: 10
Run Code Online (Sandbox Code Playgroud)

但是当我创建我的入口时,我没有得到我的自定义健康检查

路径LB

google-health google-cloud-platform kubernetes

2
推荐指数
1
解决办法
1309
查看次数