问题标签 [google-kubernetes-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Docker 容器内推荐的 GCE 服务帐户身份验证?
在自定义构建的 CentOS Docker 容器中部署 Google 服务帐户凭据以在 Google 的 Container Engine 或其“container-vm”上运行的最佳方法是什么?这种行为在google/cloud-sdk容器上自动发生,该容器运行 debian 并包含我不使用的东西,例如 app-eng/java/php。理想情况下,我正在尝试访问我的项目中的非公共资源,例如 Google Cloud Storage 存储桶对象,而无需在每次启动大量这些容器时都登录和授权。
例如,在 GCE 上运行并安装了自定义代码和 gcloud/gsutil 的基本 Centos 容器上,当您运行时:
系统会提示您运行“gsutil config”以获得授权,这是我所期望的。
但是,将 google/cloud-sdk 容器拉到同一个 GCE 上并执行相同的命令,它似乎巧妙地配置了凭据的继承(可能来自主机容器-vm 的凭据?)。在 GCE 上运行容器以访问私有资源时,这似乎绕过了运行“gsutil config”。
我希望在最小构建 Centos 容器中复制该行为以进行大规模部署。
docker - 如何将 Container VM 上的 docker 容器与清单链接?
TLDR:是否可以将两个容器与容器清单链接起来?
我正在尝试将Guestbook Sample 应用程序从 Google Container Engine docs移植到容器 vm。我在连接两个容器 vm 时遇到问题,以便 Web 应用程序可以访问 redis 服务。
如果我在实例上使用 docker 命令行,它可以工作:
启动实例并 ssh 进入它:
创建容器:
我正在使用 --link 将留言簿连接到 redis 容器。这也可以通过容器清单来完成吗?
这是我的启动命令:
编辑:Alex 使用 127.0.0.1 的解决方案工作正常,所以这就是正确的 containers.yaml:
kubernetes - 在 Google Container Engine 上访问 Kubernetes API
根据 Kubernetes API 文档,可以创建/列出/删除 pod、复制控制器和服务:
http://kubernetes.io/third_party/swagger-ui/#!/v1beta1
但是在 Google Container Engine 文档中,他们似乎没有公开这个 API。您可以通过 REST API 管理的唯一资源是集群。Pod、复制控制器和服务必须使用 gcloud 进行管理。
使用 Google Container Engine 时是否可以访问 Kubernetes API?
google-app-engine - 用于创建 Pod 的 Kubernetes/容器引擎 HTTP API
我需要使用 HTTP 创建 pod。
我使用以下方法创建了集群:
我可以使用以下方法创建 pod:
但这不是我想要的。我想通过 http API 使用我的应用程序实例创建 pod。
有我可以创建集群的API 。但我需要这样的东西来创建豆荚。可能吗?
google-authentication - 谷歌容器引擎 REST API 授权
例如对于这个查询:
如前所述
获得 API 密钥后,您的应用程序可以将查询参数 key=yourAPIKey 附加到所有请求 URL。
我将它添加到网址:
https://www.googleapis.com/container/v1beta1/projects/PROJECT_ID/clusters?key=my_key
但我有错误:
我什至尝试将密钥添加到标题的授权部分......并且出现了这个错误:
问题出在哪里?还是我做错了什么?
docker - 我无法通过 HTTP 访问我的容器 Docker 映像
我通过暴露端口 80 的 Dockerfile 在 docker 容器上本地运行 apache2 创建了一个映像。然后推送到我的 DockerHUB 存储库
我在 Google Cloud 上的项目中创建了一个新的 Container Engine 实例。在这里面我有两个集群,Master和Node1。然后创建一个 Pod,在 DockerHUB 中指定我的镜像名称,并分别为6379和80配置端口“containerPort”和“hostPort”。
Node1 通过 SSH 和命令行访问:$ sudo docker ps -l
然后我发现我的 docker 容器在那里。例如,我通过将端口配置为 Pod 中的“containerPort”和“hostPort”分别为6379和80创建了一个服务。我检查了防火墙是否可以访问端口 80。即使没有必要,我也创建了一个规则以允许通过端口 6379 进行访问。
但是当我进入时http://IP_ADDRESS:PORT
不可用。知道它出了什么问题吗?
kubernetes - 在本地运行 Kubernetes
我计划在本地测试 Kubernetes,但之前想问一些理论问题。
我在 python 中创建了一个管道,它将目录中的一大堆文件作为输入,并从中创建了一个 docker 映像(这是我的 Pod)
我从文档中了解到,Kubernetes 调度程序会自动选择要为给定任务部署的 minion,我的问题是,使用 8G 内存的笔记本电脑,在创建 minion 之前是否需要遵循“规则”(指定minions 要部署)基于机器中可用的内存量(无论它是笔记本电脑还是集群)?
谢谢
google-cloud-platform - gcloud kubectl 无法连接到 Kubernetes API Endpoint
我已经在 Google Container Engine 中设置了一个集群,根据控制台,它的 API 端点似乎与集群中主节点或节点的公共 API 完全不同(我认为这很奇怪)。
尝试使用gcloud
命令行工具管理集群时,发出的所有命令都cloud preview container kubectl
失败,超时到达 API 端点。
我尝试更改网络防火墙规则,但似乎没有任何效果。
我试图按照留言簿教程在 Kubernetes 管理的 GKE 集群中部署我的 Docker 实例,但目前无法对集群发出任何命令。
有什么想法可能是错的吗?
google-cloud-platform - 如何将 docker 附加到容器 - Google Cloud Platform / Kubernetes
我有一个在 VM 上运行的容器化应用程序。它由两个 docker 容器组成。第一个包含 WebSphere Liberty 服务器和 Web 应用程序。第二个包含 PostgreSQL 和应用程序的数据库。
在我的本地 VM 上,我只使用docker run启动两个容器,然后使用docker attach附加到 Web 服务器容器,这样我就可以编辑 server.xml 文件以指定数据库的公共主机 IP,然后启动容器中的 Web 服务器。该应用程序运行良好。
现在我正在尝试在 Google Cloud Platform 上部署该应用程序。
- 我设置了我的 gcloud 配置(项目、计算/区域)。
- 我创建了一个集群。
- 我创建了一个 JSON pod 配置文件,它指定了两个容器。
- 我创建了豆荚。
- 我为 pod 配置文件中指定的端口打开了防火墙。
在此刻:
- 我查看了 pod(gcloud preview container kubectl get pods),它显示两个容器都在运行。
- 我通过 SSH 连接到集群(gcloud compute ssh xxx-mycluster-node-1)并发出sudo docker ps,它显示数据库容器正在运行,但不是 Web 服务器容器。使用sudo docker ps -l我可以看到未运行的 Web 服务器容器,但它会每隔 10 秒左右尝试启动和退出。
所以现在我需要更新 server.xml 并启动 Liberty 服务器,但我不知道如何在这个领域做到这一点。我可以像在本地 VM 中那样附加到 Web 服务器容器吗?任何帮助将不胜感激。谢谢。
kubernetes - 为集群主服务器选择不同的 vm 类型并调整节点数量
如何为集群主节点指定特定的 vm 类型(我不想为相对非活动节点使用高内存实例)。另外,有没有办法将节点添加到集群并选择虚拟机的类型?(这样可以解决第一个问题)