我通过 Google Compute Engine 中的 Bitnami 创建了一个 VM。以前,我可以通过 Bitnami Web 界面进行 ssh。我试图通过 Mac 上的终端 ssh,但一直收到Permission denied (publickey)错误消息。然后我删除了服务器和我的 Mac 上的所有密钥,并从 bitnami 下载了 pem 文件并使用-i了连接选项,但问题仍然存在。
ssh -i bitnami-gce.pem xxx@1xx.1xx.5x.1xx -v
Run Code Online (Sandbox Code Playgroud)
完整的调试信息:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 1xx.1xx.5x.1xx [1xx.1xx.5x.1xx] port 22.
debug1: Connection established.
debug1: identity file bitnami-gce.pem type -1
debug1: identity file bitnami-gce.pem-cert type -1
debug1: Enabling compatibility mode for protocol …Run Code Online (Sandbox Code Playgroud) debian ssh ssh-keys google-compute-engine google-cloud-platform
我的环境:
# uname -a
Linux app11 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux
#
# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
#
Run Code Online (Sandbox Code Playgroud)
在尝试运行时apt-get update,我收到了一堆错误:
# apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Hit:2 http://security.debian.org stretch/updates InRelease
Hit:3 http://deb.debian.org/debian stretch-updates InRelease
Hit:4 http://deb.debian.org/debian stretch-backports InRelease
Hit:5 http://deb.debian.org/debian stretch Release
Get:6 http://packages.cloud.google.com/apt cloud-sdk-stretch InRelease [6,377 B]
Ign:7 https://artifacts.elastic.co/packages/6.x/apt stable InRelease
Hit:8 https://artifacts.elastic.co/packages/6.x/apt stable Release
Get:9 http://packages.cloud.google.com/apt google-compute-engine-stretch-stable InRelease [3,843 B]
Get:10 …Run Code Online (Sandbox Code Playgroud) 目前我正在做一个小型的爱好项目,一旦它准备好,我就会开源。此服务在 Google Container Engine 上运行。我选择 GCE 是为了避免配置麻烦,成本可以承受并学习新东西。
我的 pod 运行良好,我创建了一个类型LoadBalancer的服务来在端口 80 和 443 上公开服务。这完美地工作。
但是,我发现对于每个LoadBalancer服务,都会创建一个新的 Google Compute Engine 负载均衡器。这个负载均衡器非常昂贵,并且对于单个实例上的业余项目来说真的做得太过分了。
为了降低成本,我正在寻找一种无需负载平衡器即可公开端口的方法。
到目前为止我尝试过的:
部署NodePort服务。不幸的是,不允许公开低于 30000 的端口。
部署一个 Ingress,但这也会创建一个负载均衡器。
试图禁用HttpLoadBalancing(https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters#HttpLoadBalancing)但它仍然创建了一个负载平衡器。
有没有办法在没有负载均衡器的情况下为 Google Container Engine 上的单个实例公开端口 80 和 443?
我花了过去 3 个小时寻找发布 Google Compute Engine API 使用中 IP 地址的方法,因为我使用了 8/8。我用谷歌搜索,阅读手册,但无法在控制台的任何地方发布它。我正在尝试设置一个 Rails 应用程序。编译时遇到错误,因为我没有为 DB 提供正确的套接字(这在这里并不重要)。当卡住时,我在终端中按 Ctrl+C 释放,我认为这是问题所在。- 我是 Google Cloud 的新手,因此我只能假设。
错误信息:
ERROR: (gcloud.app.deploy) Error Response: [400] The following quotas were exceeded: IN_USE_ADDRESSES (quota: 8, used: 8 + needed: 2).
https://appengine.googleapis.com/v1/apps/workepics/services/default/versions?alt=json
Run Code Online (Sandbox Code Playgroud)
当我在控制台中单击计算引擎时,只会询问我是否要创建一个。没有其他选择。
任何帮助,将不胜感激!谢谢你。
我在带有 2 个全局转发规则(HTTP 和 HTTPS)的 Google Compute Engine 上设置了 HTTP/HTTPS 负载平衡。每个规则指向一个使用 HTTP 协议的后端服务。
我希望所有请求http://*都转到https://*.
当负载平衡器通过 HTTP 与后端服务通信时,我认为我无法在后端服务上使用 nginx 将301.
我在谷歌计算上尝试了十几个小的调整,他们最终都以谷歌计算返回一个502.
我敢肯定其他人之前已经设置了这个。任何正确方向的提示或指示都非常感谢。
我正在使用 Google Kubernetes Engine 部署一个网络应用程序,我想通过负载均衡器在我作为 Google Cloud Platform 中同一项目的一部分控制的现有静态 IP 地址上访问它,因为我想使用域名已经指向这个IP。
我用于 pod 的 yaml 文件是:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法设置负载平衡器:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
这提供了一个可以访问应用程序的外部 IP,但我找不到任何方法来配置它以使用我想要的 IP。该服务的文件提到了spec.clusterIP设置,但这似乎并没有涉及到的外部IP。同样,一旦设置了负载均衡器,服务的 status.loadBalancer.ingress.ip 字段就会设置为其外部 IP 地址,但这似乎不是一个可配置的设置。
作为替代方案,我尝试在 Google Compute Engine 控制台中手动创建转发规则,将来自静态 IP 地址的流量定向到 Kubernetes 设置的目标池,但是当我尝试连接时,连接被拒绝。
有什么方法可以做我想做的事 - 在选定的静态 IP 地址上在 Google Kubernetes 引擎上公开 Kubernetes …
docker google-compute-engine kubernetes google-cloud-platform google-kubernetes-engine
以下对 Google 文档的引用不再正确。
Google 建议从 GCE 实例中删除 SSH 密钥以保护 SSH。这对我来说没有任何意义。钥匙是为了安全,对吧?当我删除密钥时,SSHD 停止工作。我可能错过了他们的观点。有人可以解释一下这是什么意思:
删除 ssh 主机密钥
不要在您的实例中使用 ssh 主机密钥。删除它们如下:
Run Code Online (Sandbox Code Playgroud)rm /etc/ssh/ssh_host_key rm /etc/ssh/ssh_host_rsa_key* rm /etc/ssh/ssh_host_dsa_key* rm /etc/ssh/ssh_host_ecdsa_key*
我正在使用 Gitlab-CI 在 GCE 上部署 Kubernetes 集群。我想将成本保持在最低水平 - 这是我目前的设置:
f1-micro实例上运行Traefik使用 ServiceType 配置运行的系统 podLoadBalancerpostgres 吊舱ingress为 Traefik 配置的Web 服务器 pod我想降低部署成本。大部分成本由 GCE 负载均衡器承担。有没有办法在 GCE 上使用公共 IP 地址而不是负载均衡器?如果是这样,我是否可以使用分配给集群的 IP 地址(而不是保留静态 IP)?
换句话说,有没有办法在没有负载均衡器的情况下使用 GCE 将临时 IP 绑定到 Kubernetes 服务?
是否有任何其他配置我可以做不同的事情来降低 GCE 的总体成本?
load-balancing google-compute-engine kubernetes google-kubernetes-engine
我的公司有一台托管在北美的 Google Compute Engine 服务器。我们有太多的中国 IP 地址向端口 11 发送请求,以至于我们要为入口花钱。我们的防火墙已经阻止了与中国的所有连接,因为他们无法访问我们的应用程序。
有没有办法完全忽略这些连接,或者以不会占用带宽的方式阻止它们?
firewall hacking china linux-networking google-compute-engine