我一直在尝试在现有的 GKE 集群上设置 Istio。
我按照 Istio 网站上提到的步骤进行安装 - 先决条件。
https://istio.io/latest/docs/setup/platform-setup/gke/
我有一个私有集群,因此我在先决条件中添加了防火墙规则。
gke-aiq-kubernetes-0a227ee8-all default INGRESS 1000 tcp,udp,icmp,esp,ah,sctp False
gke-aiq-kubernetes-0a227ee8-master default INGRESS 1000 tcp:10250,tcp:443,tcp:15017 False
gke-aiq-kubernetes-0a227ee8-vms default INGRESS 1000 tcp:1-65535,udp:1-65535,icmp False
Run Code Online (Sandbox Code Playgroud)
然后使用演示配置文件安装 istio。
istioctl install --set profile=demo
Run Code Online (Sandbox Code Playgroud)
然后验证安装
istioctl verify-install
Run Code Online (Sandbox Code Playgroud)
这说明一切都成功了。
我用 namecpace 标记为“instio-inject=enabled”,这样我就会自动注入 sidecar porxy。
但是当我尝试在命名空间中部署某些内容时,出现以下错误:
Error from server (InternalError): error when creating "pod-pending.yaml": Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https://istiod.istio-system.svc:443/inject?timeout=30s: context deadline exceeded
Run Code Online (Sandbox Code Playgroud)
据我了解,存在一些连接问题,但我不知道如何调试它。
我尝试了 istio 的调试页面:
https://github.com/istio/istio/wiki/Troubleshooting-Istio#diagnostics
运行命令后:
kubectl get --raw /api/v1/namespaces/istio-system/services/https:istiod:https-webhook/proxy/inject -v4
Run Code Online (Sandbox Code Playgroud)
我确信这是连接问题:
t -v5
I1113 …Run Code Online (Sandbox Code Playgroud) google-compute-engine google-cloud-platform kubernetes google-kubernetes-engine istio
因此,我正在为在计算引擎上运行的应用程序设置 API 网关。由于我找不到任何有关如何在 API 引擎上配置计算引擎的文档,因此我使用内部 DNS 创建了以下配置。在此输入链接描述
swagger: "2.0"
info:
title: API Endpoints
description: API Endpoints
version: 1.0.1
schemes:
- https
produces:
- application/json
paths:
/indexes:
get:
summary: Return Search Indexes
operationId: searchIndexes
x-google-backend:
address: http://my_internal_dns_for_compute_engine.c.myproject.internal/indexes
path_translation: APPEND_PATH_TO_ADDRESS
responses:
"200":
description: A successful response
schema:
type: string
"403":
description: Failed to authenticate
Run Code Online (Sandbox Code Playgroud)
当我使用gcloud部署配置时,出现以下错误
等待为 API [my-api] 创建 API 配置 [my-api-config-v6]...失败。
错误:(gcloud.beta.api-gateway.api-configs.create)等待服务配置创建:后端 URL“http://my_internal_dns_for_compute_engine.c.myproject.internal/indexes”被禁止:无法将请求路由到内部地址。
所以看起来内部 DNS 不受支持(显然)。
我的计算引擎实例只能通过 VPC 网络访问。如何将我的 api 网关连接到 VPC 网络以及如何通过它访问我的计算引擎?
google-compute-engine google-cloud-platform google-vpc google-api-gateway
我在 GCPSecret Manager服务中创造了一些秘密。然后,为了在本地计算机上访问这些机密,我创建了一个service account密钥JSON来从本地计算机验证该服务帐户。我还向该服务帐户授予了该角色Secret Manager Secret Accessor,以使其能够访问来自 的机密值Secret Manager。现在,它在我的本地机器上运行得非常好。
此外,我想将此代码部署到 GCP Compute Instance。因此,我创建了一个并将源代码发送到该实例。Secret Manager Secret Accessor我还向计算实例的默认服务帐户授予了相同的权限。现在,当我在实例上运行尝试此代码时,它会返回一个权限被拒绝的错误,如下所述。
The above exception was the direct cause of the following exception:
ibdax |
ibdax | Traceback (most recent call last):
ibdax | File "manage.py", line 22, in <module>
ibdax | main()
ibdax | File "manage.py", line 18, in main
ibdax | execute_from_command_line(sys.argv)
ibdax | File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
ibdax …Run Code Online (Sandbox Code Playgroud) google-compute-engine service-accounts google-cloud-platform google-secret-manager
我正在为“在首尔运行的 E2 实例核心”付费。账单报告显示相关服务是“Compute Engine”,但没有从 Compute Engine 运行的虚拟机实例。我无法追踪账单的原因。
不确定是否相关,但我创建了 4 个 Cloud Run 服务,具有 0 个最小实例自动扩展设置,每天运行时间可能为 0~5 分钟。但“在首尔运行的E2实例核心”的使用量是7天84小时。所以我认为这不是原因。
为什么我要为“在首尔运行的 E2 实例核心”付费?
google-compute-engine google-cloud-platform google-cloud-billing
临时外部 IP 地址:这些地址可供虚拟机实例和转发规则使用。仅在 VM 停止并重新启动或实例终止之前,临时外部 IP 地址仍保留附加到 VM 实例。如果实例停止,分配给该实例的任何临时外部 IP 地址都会被释放回通用 Compute Engine 池,并可供其他项目使用。当已停止的实例再次启动时,会为该实例分配一个新的临时外部 IP 地址。
我认为是瞬时的,一旦虚拟机停止,我们将无法恢复相同的临时 IP 地址。然而,临时外部 IP 地址似乎仍会在一段时间内分配给项目。例如,我前两天删除了一个虚拟机并释放了一个IP地址。今天,相同的 IP 地址被分配给新的虚拟机。
将临时 IP 地址释放回 GCE 池需要多长时间?
临时外部 IP 地址是否“分配”给VPC或项目?如果一个 VPC 内有多个项目,临时 IP 地址是否会在项目内轮换,直到它们被释放到 GCE 池中?
我正在尝试在 GCP 中设置一些虚拟机的自动停止/启动,并且我已经拥有虚拟机管理员权限,但是当将虚拟机添加到创建的实例计划时,我收到以下错误:
Compute Engine 系统服务帐号 service-5424xxxxxxx@compute-system.iam.gserviceaccount.com 需要应用 [compute.instances.start,compute.instances.stop] 权限才能执行此操作。
google-compute-engine google-cloud-platform google-iam google-cloud-iam
文件系统位于Google Compute Engine上全新安装MEAN的位置?
我在端口3000中看到"这是主视图"但无法找到实际文件.
我刚刚添加了一个HTTP负载均衡器,指向运行Tornado Web服务器的几个Google Compute Engine实例.特别是,他们正在处理websockets.
当我通过负载均衡器(在Chrome中)访问带有嵌入式websocket的页面时,我得到:
Error during WebSocket handshake: Unexpected response code: 400
Run Code Online (Sandbox Code Playgroud)
这是通过DNS以及达到负载均衡器的IP.
但是,当我点击一个单独的实例时,我能够成功握手websocket.
当我通过负载均衡器获取页面时,我没有在Web服务器中看到任何400个日志,这进一步表明它是负载平衡器,没有让它通过.
我可以做些什么来允许HTTP'升级'?或者这在云平台HTTP负载均衡器中是不可能的.
编辑:我也可以通过'网络负载均衡器'握手websocket,所以所有迹象都指向HTTP负载均衡器是问题.
使用Google Deploy Manager时:
gcloud deployment-manager deployments create my-environment --config my-environment.jinja
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ErrorsValueListEntry INVALID_CONFIG
无效的配置文件:模板获取失败:找不到资源
无论我的内容如何my-environment.jinja-即使复制文档中的样本
不知道我在做什么错吗?
当我使用GCE Linux实例(CPU负载> = 1.0)执行3D图形渲染时,该describe命令执行时间超过30秒.
gcloud compute instances describe render-1
Run Code Online (Sandbox Code Playgroud)
运行50个这样的实例并单独查询每个实例时,这需要超过25分钟.
有没有更快的方法来获取此数据?