小编Gal*_*one的帖子

如何列出与gcp服务帐户关联的角色?

在google cloud gui控制台中,我访问了"IAM&admin">"服务帐户",并使用查看者角色创建了一个名为"my-service-account"的服务帐户.

然后我运行了这个命令:

gcloud iam service-accounts get-iam-policy my-service-account@mydomain.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

并看到了这个输出:

etag: ACAB
Run Code Online (Sandbox Code Playgroud)

根据文档,这意味着此服务帐户没有与之关联的策略.所以我给它分配了一个"角色",不包括在其"政策"中.

如何列出与服务帐户关联的角色?

google-cloud-platform gcloud google-cloud-iam

21
推荐指数
4
解决办法
1万
查看次数

gcloud将默认值存储在哪里?

此快速入门之后,我设置了一个像这样的默认项目

$ gcloud config set project lfs258
Updated property [core/project].
$ gcloud config get-value project
lfs258
Run Code Online (Sandbox Code Playgroud)

不过,我的GCP帐户上不存在lfs258项目,因此我很惊讶将其设置为默认项目。当我尝试查看gcloud的默认存储位置时,没有.gcloud/目录。

gcloud将默认值存储在哪里? kubectl将它们存储在中,.kube/config但找不到gcloud的类似配置文件。

google-compute-engine google-cloud-platform gcloud

12
推荐指数
3
解决办法
4231
查看次数

启动脚本记录位置

在Google Cloud Platform的Ubuntu 16.04.1实例中,我的启动脚本的输出被写入/var/log/startupscript.log.

由于他们升级到16.04.02我找不到日志了.

任何的想法?

google-compute-engine google-cloud-platform gcloud ubuntu-16.04

10
推荐指数
3
解决办法
3126
查看次数

多个节点池与单个池,包含许多计算机和大型计算机

我们将所有基础设施迁移到Google Kubernetes Engine(GKE) - 我们目前拥有50多台具有大量API,服务,Web应用程序,数据库服务器等的AWS机器.

由于我们已经将所有东西都停靠,现在是时候开始将所有东西都移到GKE了.

我有一个问题可能听起来太基本,但我已经在网上搜索了一个星期,并没有找到任何合理的帖子

直截了当,以下哪种方法更好,为什么:

  1. 拥有多个机器类型的多个节点池,并始终指定应在哪个池中完成每个部署; 要么

  2. 拥有一个包含大量机器的单个池,让Kubernetes调度程序完成工作,而不必担心我的部署将在何处完成; 要么

  3. 拥有BIG机器(在多个区域中提高集群的可用性和弹性)并让Kubernetes在那里部署所有内容.

google-cloud-platform kubernetes google-kubernetes-engine

9
推荐指数
2
解决办法
2012
查看次数

GKE是否支持静态IP的nginx-ingress?

我一直在使用Google Cloud入口.还部署了nginx-ingress并尝试在GKE中使用static-ip地址进行设置.

  • 我们可以在同一群集中同时使用Google Cloud ingress和nginx-ingress吗?
  • 我们如何使用static-ip的nginx-ingress?

谢谢

google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress

8
推荐指数
3
解决办法
4257
查看次数

在Cassandra中从表中创建具有大量数据的物化视图

我们在Google Cloud Kubernetes中有一个带有3个pod的Cassandra集群.我们的Cassandra版本是3.9,我们正在使用Google图像.

当我尝试从表格创建物化视图时出现问题.

表的架构如下:

CREATE TABLE environmental_data (
    block_id int,
    timestamp timestamp,
    device_id int,
    sensor_id int,
    .
    .
    .
    PRIMARY KEY (block_id, timestamp, device_id, sensor_id)
Run Code Online (Sandbox Code Playgroud)

我想用device_id作为集群密钥创建一个视图,我试着这样做:

CREATE MATERIALIZED VIEW environmental_data_by_device AS
       SELECT block_id, timestamp, device_id, sensor_id,... FROM environmental_data
       WHERE block_id is not null
       and timestamp is not null
       and device_id is not null
       and sensor_id is not null
       PRIMARY KEY ((device_id), timestamp, sensor_id, block_id)
       WITH CLUSTERING ORDER BY (timestamp DESC);
Run Code Online (Sandbox Code Playgroud)

在本地只有非常少量的数据,一切都很顺利.但是在拥有8000万行的生产中,有2个播放器崩溃,而Cassandra则在这个错误上出现了问题:

尝试更新MaterializedView时捕获到未知异常!environmental_data

java.lang.IllegalArgumentException:对于XXXX的最大大小,XXXX字节的突变太大

还有很多 java.lang.OutOfMemoryError: Java heap space

我该怎么做才能确保下一次尝试成功?决定放弃生产Cassandra第二次是不可想象的. …

cassandra google-cloud-platform kubernetes google-kubernetes-engine cassandra-3.0

7
推荐指数
1
解决办法
334
查看次数

如何处理抢占通知?

我目前正在AWS上运行并使用kube-aws/kube-spot-termination-notice-handler拦截AWS终止通知并优雅地驱逐pod.

我正在阅读这个GKE文档页面,我看到:

抢先实例在收到抢占通知后30秒后终止.

进入Compute Engine文档,我看到在终止发生前30秒发送了ACPI G2 Soft Off,但是这个问题表明kubelet本身不能处理它.

那么,GKE如何处理抢占?节点会进行排水/警戒线操作还是仅进行硬关机?

google-cloud-platform kubernetes google-kubernetes-engine

7
推荐指数
1
解决办法
1116
查看次数

ImagePullBackOff错误Google Kubernetes Engine

我知道很多人已经有类似的问题了,我读了一些,但到目前为止找不到什么实际帮助我.

我有一个启用私人仓库的gitlab,我也使用Google Kubernetes Engine.我的私人仓库中有一些Docker容器,我想将其中一个部署到Kubernetes Engine.

我创建了一个秘密,kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt 我也试过kubectl create secret docker-registry name --docker-server=registry.xy.z --docker-username=google --docker-password=xyz --docker-email=xy@z.de 然后我创建了我的部署文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: backend-test
labels:
app: 13371337
spec:
replicas: 1
template:
metadata:
labels:
app: 13371337
spec:
  containers:
  - name: backend
    image: registry.xy.z/group/project/backend:latest
    imagePullPolicy: Always
    ports:
    - containerPort: 8080
  imagePullSecrets:
  - name: db-user-pass or name
Run Code Online (Sandbox Code Playgroud)

任何想法如何让它运行?

gitlab google-cloud-platform kubernetes google-kubernetes-engine docker-registry

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

GCP部署管理器:403没有storage.buckets.get访问权限

我正在尝试使用Deployment Manager创建一个存储桶但是当我想创建部署时,我收到以下错误:

ERROR: (gcloud.deployment-manager.deployments.create) Error in Operation [operation-1525606425901-56b87ed1537c9-70ca4aca-72406eee]: errors:
- code: RESOURCE_ERROR
  location: /deployments/posts/resources/posts
  message: '{"ResourceType":"storage.v1.bucket","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"errors":[{"domain":"global","message":"myprojectid@cloudservices.gserviceaccount.com
    does not have storage.buckets.get access to posts.","reason":"forbidden"}],"message":"myprojectid@cloudservices.gserviceaccount.com
    does not have storage.buckets.get access to posts.","statusMessage":"Forbidden","requestPath":"https://www.googleapis.com/storage/v1/b/posts","httpMethod":"GET","suggestion":"Consider
    granting permissions to myprojectid@cloudservices.gserviceaccount.com"}}'
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,部署管理器使用服务帐户(如消息中所述)来实际创建我的所有资源.我已经检查了IAM并确保服务角色(myprojectid@cloudservices.gserviceaccount.com)确实具有"编辑器"的访问权限,甚至添加了"存储管理"(包括storage.buckets.get)以确保更加可靠.但是,我仍然得到相同的错误消息.

我是否将权限分配给错误的IAM用户/我做错了什么?


使用的命令:

gcloud deployment-manager deployments create posts --config posts.yml
Run Code Online (Sandbox Code Playgroud)

我的部署模板:

bucket.jinja

resources:
- name: {{ properties['name'] }}
  type: storage.v1.bucket
  properties:
    name: {{ properties['name'] }}
    location: europe-west1
    lifecycle:
      rule:
      - action:
          type: Delete
        condition:
          age: 30
          isLive: true
    labels:
      datatype: {{ properties['datatype'] …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-cloud-platform google-iam google-deployment-manager

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

kubectl应用-奇怪的空运行

我正在使用kubectl和--dry-run遇到奇怪的行为。

为简化起见,假设我具有以下yaml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    run: nginx
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      run: nginx
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
    spec:
      containers:
      - image: nginxsdf
        imagePullPolicy: Always
        name: nginx
Run Code Online (Sandbox Code Playgroud)

修改例如图像或副本数:

  • kubectl apply -f Deployment.yaml -o yaml --dry-run向我输出具有OLD规范的资源

  • kubectl apply -f Deployment.yaml -o yaml向我输出具有规范的资源

根据文档:

--dry-run = false:如果为true,则仅打印将要发送的对象,而不发送它。

但是,打印的对象是旧对象,而不是将被发送到ApiServer的对象。

在minikube,gke v1.10.0上测试

同时,我为此打开了一个新的gitHub问题:

kubernetes kubectl minikube kubernetes-apiserver

6
推荐指数
2
解决办法
786
查看次数