我想创建使用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 为服务帐户编写角色/范围的脚本吗?
我正在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状态,它至少会重新启动 - 但理想情况下不会进入这样的状态开始?
谢谢.
当我在 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) 我正在解决文本分类问题.我使用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) 当我们反复gcr.io使用相同的图像名称和版本(标签)时,会出现大量未标记的图像.
是否有一种简单的方法可以从项目中删除所有未标记的图像,或者至少删除单个图像,以避免产生存储成本?
嗨,我尝试将自定义运行状况检查与 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)
但是当我创建我的入口时,我没有得到我的自定义健康检查