在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)
根据文档,这意味着此服务帐户没有与之关联的策略.所以我给它分配了一个"角色",不包括在其"政策"中.
如何列出与服务帐户关联的角色?
在此快速入门之后,我设置了一个像这样的默认项目
$ 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 Cloud Platform的Ubuntu 16.04.1实例中,我的启动脚本的输出被写入/var/log/startupscript.log
.
由于他们升级到16.04.02
我找不到日志了.
任何的想法?
google-compute-engine google-cloud-platform gcloud ubuntu-16.04
我们将所有基础设施迁移到Google Kubernetes Engine(GKE) - 我们目前拥有50多台具有大量API,服务,Web应用程序,数据库服务器等的AWS机器.
由于我们已经将所有东西都停靠,现在是时候开始将所有东西都移到GKE了.
我有一个问题可能听起来太基本,但我已经在网上搜索了一个星期,并没有找到任何合理的帖子
直截了当,以下哪种方法更好,为什么:
拥有多个机器类型的多个节点池,并始终指定应在哪个池中完成每个部署; 要么
拥有一个包含大量机器的单个池,让Kubernetes调度程序完成工作,而不必担心我的部署将在何处完成; 要么
拥有BIG机器(在多个区域中提高集群的可用性和弹性)并让Kubernetes在那里部署所有内容.
我一直在使用Google Cloud入口.还部署了nginx-ingress
并尝试在GKE中使用static-ip地址进行设置.
谢谢
google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress
我们在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
我目前正在AWS上运行并使用kube-aws/kube-spot-termination-notice-handler拦截AWS终止通知并优雅地驱逐pod.
我正在阅读这个GKE文档页面,我看到:
抢先实例在收到抢占通知后30秒后终止.
进入Compute Engine文档,我看到在终止发生前30秒发送了ACPI G2 Soft Off,但是这个问题表明kubelet本身不能处理它.
那么,GKE如何处理抢占?节点会进行排水/警戒线操作还是仅进行硬关机?
我知道很多人已经有类似的问题了,我读了一些,但到目前为止找不到什么实际帮助我.
我有一个启用私人仓库的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
我正在尝试使用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
我正在使用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 ×6
gcloud ×3
cassandra ×1
gitlab ×1
google-iam ×1
kubectl ×1
minikube ×1
ubuntu-16.04 ×1