我正试图复制本地文件到/var/www/ 。 该实例有两组密钥。 一个用于默认生成的实例创build器,另一个用于手动设置的远程访问。 我已经成功地通过gcloudlogin,作为后者的用户,一旦我login,我可以更改为根。但是,当我尝试通过root@instance-name或instance-creator-name@instance-name ,我得到Permission denied (publickey) 。 我是否需要为实例创build者生成一个新的密钥对? 实例创build者的私钥是否可以find(不会违反安全性)? 有没有另一种方式作为根login? 编辑: 文档留下未指定的部分。 以下示例演示了将名为css的文件夹复制到默认文档目录中,并以root用户身份执行此操作,因为该用户拥有/ var / www远程目录: $ gcloud compute copy-files ~/mysite/css root@<YOUR-INSTANCE>:/var/www 这应该按照文档工作,但我得到的Permission denied 。 思考我可能搞砸了我的SSHconfiguration,我强迫gcloud使用默认的私钥,然后我手动生成的密钥,但都没有工作。
我在Google Compute Engine实例上运行CoreOS beta 991.1.0,其中cloud-config是通过user_data元数据variablesconfiguration的。 我的云configuration看起来像这样: #cloud-config write_files: – path: "/etc/kubernetes/kube.conf" permissions: "0644" owner: "root" content: | apiVersion: v1 kind: Config clusters: – name: kube cluster: server: https://127.0.0.1:443 certificate-authority: /etc/kubernetes/ssl/ca.pem users: – name: kubelet user: client-certificate: /etc/kubernetes/ssl/master-client.pem client-key: /etc/kubernetes/ssl/master-client-key.pem contexts: – context: cluster: kube user: kubelet ssh_authorized_keys: – "SECRET" coreos: etcd2: discovery: https://discovery.etcd.io/106b575a45f2abefdaea40ebba4d0d84 initial-advertise-peer-urls: https://$private_ipv4:2380 […]
我在Google Compute Engine的CentOS实例中遇到内核恐慌错误。 我能够看到错误,并已经找出解决方法,但是我无法通过串口控制台进入GRUB菜单。 dracut: Mounted root filesystem /dev/sda1 dracut: Loading SELinux policy type=1404 audit(1479929075.614:2): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295 dracut: SELinux: Could not open policy file <= /etc/selinux/targeted/policy/policy.24: No such file or directory /sbin/load_policy: Can't load policy and enforcing mode requested: No such file or directory dracut Warning: Initial SELinux policy load failed. dracut FATAL: […]
尝试设置WinSCP,这样我就可以通过SFTP访问我的实例,运行Compute Engine并使用这些方向 。 然而,当阅读这里的说明时 ,我很困惑如何处理用户名的前缀到密钥的开头。 这不会使关键信息与winscp的指令产生的密钥不同,如下所示: input您的GCE用户名到密钥评论框。 复制粘贴公钥的内容到OpenSSH authorized_keys文件到剪贴板(注意内容包括你的用户名); WinSCP的方向将用户名添加到密钥的末尾。 而且Google需要预先input用户名。 所以在元数据 – >用户,我编辑我的用户名的SSH密钥,以预先安装用户名,但它不工作。 在完成将私钥文件添加到SSH>authentication页面并尝试login之后,我得到authentication失败。
我正在尝试为cosd映像上的StackDriver设置日志logging代理,但报告它是不受支持的系统。 我的想法是创build一个“sidecar”容器,类似于AppEngine Flexible VM如何将其日志导入堆栈驱动程序,但是对于如何实现这一点,以及通过gcr.io/URLs使用的容器图像aren没有很好的文档logging(甚至应该在Google之外使用)? 有没有人有如何做到这一点的build议? 我希望能够监视和警报某些日志我的nginx容器输出,以及查看主机虚拟机本身的日志。 现在,我使用我的–log-driver=gcplogs docker run命令中的–log-driver=gcplogs标志将日志从我的nginx容器转到StackDriver日志logging。
我有两个集群。 集群A(在谷歌容器引擎上)是一个面向公众的集群,它需要连接到专用集群B(在GCE上的点击部署集群)来访问服务。 我希望集群A通过负载平衡器连接到集群B,即使所有GCE负载均衡器都需要公有IP地址,也可以工作https://groups.google.com/d/topic/gce讨论/ Dv6289i4_rg /讨论 (我宁愿如果它都是私人的)。 如果您只需设置一个简单的防火墙规则并使用标准的Google负载平衡器,公共IP地址本身就不是那么糟糕。 不幸的是,源标签似乎没有跨越广域网的门槛(或只是没有通过负载平衡器)。 这是我想要使用的规则: gcloud compute firewall-rules create servicename-lb-from-gke-cluster –allow tcp:1234 –source-tags k8s-gke-cluster-node –target-tags servicename #DOES NOT WORK 进入上述命令后,集群A不能通过TCP端口1234与集群B(通过负载均衡器)进行通信。 这是行得通的,但是这很痛苦,因为它需要监督来自动设置源集群的公共IP地址: gcloud compute firewall-rules create servicename-lb-from-gke-cluster –allow tcp:1234 –source-ranges 100.2.3.4/32 100.3.5.9/32 100.9.1.2/32 –target-tags servicename #Does work, but is painful 正如谷歌组线程中所build议的,HA代理是另一个build议。 另一个想法是打开防火墙到整个广域网,并添加安全authentication之间的集群A和B.也许这是一个好主意,为安全起见呢? 根据A和B的运行情况,难度可能从容易变到困难 – 有一个更一般的解决scheme可能是很好的。 有没有人有更好的主意? 其他人是否也有同样的问题?
我想构build一个Docker容器,然后从GCE永久磁盘(PD)挂载一些目录后,在GKE中运行它。 例如,我希望/etc/<application>/的应用程序的(读写)configuration文件的存活时间长于它的pod(可能随时会重新启动)。 常规的构build将默认configuration文件放入/etc/<application>/ ,并且必须以某种方式将这些文件从镜像的临时磁盘“复制”到PD中,以便应用程序可以在预期的环境中启动。 有没有最好的做法,使这种情况发生? 例如,我是否也必须在我的Dockerfile安装PD,或者我可以以某种方式请求在部署期间首次由虚拟机实例挂载时,与另一个目录/卷/磁盘中的文件“同步”PD?
我想在现有的kubernetes集群中添加一个新节点,但使用不同的机器types。 对于新节点,我将为它添加标签,以便只有一些应用程序可以运行。 我尝试了下面的命令 gcloud compute instance-groups managed resize CONTAINER_GROUP –zone ZONE –size 5 –machine-type n1-standard-8 并且它返回一个错误 错误:(gcloud.compute.instance-groups.managed.resize)无法识别的参数:–machine-type n1-standard-8 如何将新节点添加到具有不同机器types的现有kubernetes群集中?
我有一个5TB的高清,我想缩小到2TB。 我使用Google Compute Engine PaaS。 我怎样才能做到这一点? 如果Google的工具无法解决这个问题,您能否build议使用任何工具来手动执行此操作?
[问题重写了调查结果的细节。] 我正在运行一个Google容器引擎群集,每天大约有100个容器执行大约10万次API调用。 一些豆荚开始得到50%的DNSparsing失败。 我深入研究了这一点,它只发生在运行kube-dns节点上的豆荚。 我还注意到,这只发生在系统中的节点由于内存不足而closures之前发生。 后台恢复作业将附加到Google API,然后将数据上传到S3。 当我看到失败的工作,他们失败,“名称parsing临时失败”。 这发生在“accounts.google.com”和“s3.amazonaws.com”。 当我login到服务器,并尝试连接到这些(或其他主机)与host , nslookup ,或dig它似乎工作得很好。 当我连接到轨道控制台,并运行相同的代码,在队列中失败,我不能失败发生。 Howerver,正如我所说的,这些背景故障似乎是间歇性的(大约50%的时间运行在运行kube-dns节点上)。 到目前为止,我的临时修复是删除那些失败的豆荚,让kubernetes重新安排它们,并继续这样做,直到kubernetes将它们调度到一个不运行kube-dns的节点。 顺便说一句,删除失败的节点没有解决这个问题。 它只是让kubernetes把所有的东西都移动到其他节点上,并且移动了问题。