使用fleet我可以指定在启动时在容器内运行的命令.看起来Kubernetes也很容易实现这一点,但我似乎无法找到任何说明如何的东西.您似乎必须专门创建容器才能使用某个命令启动.
拥有一个通用容器并使用不同的参数启动它比为特定情况创建许多不同的容器,或设置和获取环境变量简单得多.
是否可以在启动时指定kubernetes pod在Docker镜像中运行的命令?
我已经在这个回购中基于入门套件松散地构建了一个同构的React应用程序.它使用webpack来构建生产代码.
事实上,我需要将服务器上的一些环境变量的值暴露给浏览器中的客户端代码,而无需重建生产代码.我希望能够更改env变量的值,并让它在下一页刷新客户端的效果,而不必重建任何东西.我不想让测试复杂化.
我找到了一些解决方案,其中没有一个很好:
这些方法的问题:
我过去做过2和3,从来没有真正满足这些解决方案.
有什么建议?这似乎应该是一个常见/解决的问题.也许我只是在思考它,3是要走的路.
我在使用Google Cloud PubSub API时遇到了一些问题.最近,我开始使用Cloud PubSub为我正在处理的聊天服务器排队消息.来自PubSub订阅的消息将使用socket.io节点库转发给用户.我没有遇到这个设置问题 - 我运行我的node.js服务器,打开几个浏览器窗口,我可以毫无问题地聊天.
但是,我注意到,经常在服务器运行几个小时后,它开始吐出以下错误:
(node:2525) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
(node:2525) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
...
(node:2525) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1253): Error: Request had invalid authentication credentials. Expected …
我正在考虑在CoreOS集群之上部署Kubernetes,但我认为我遇到了各种各样的交易破坏者.
如果我只使用CoreOS和fleet,我可以在单元文件中指定我希望某些服务不能在与其他服务相同的物理机器上运行(反亲和力).这对于高可用性至关重要.但它看起来并不像kubernetes有这个功能.
在我的特定用例中,我将需要运行一些需要始终可用的弹性搜索机器集群.如果出于任何原因,kubernetes决定在一台机器上安排给定ES集群的所有弹性搜索节点容器(或者甚至是一台机器上的大多数),并且该机器死机,那么我的elasticsearch集群将随之死亡.这是不允许发生的.
似乎可能有解决方法.我可以设置资源需求和机器规格,这样每台机器上只能安装一个弹性搜索实例.或者我可能以某种方式使用标签来指定某些弹性搜索容器应该在某些机器上运行.我还可以提供比必要更多的机器,以及比必要的更多ES节点,并假设kubernetes将它们分散到足以合理确定高可用性.
但所有这一切似乎都很尴尬.从资源管理的角度来看,只需指定所需的硬件和反关联性,就可以让调度程序从那里进行优化.
那么Kubernetes是否以某种我无法找到的方式支持反亲和力?或者有人知道它是否会很快?
或者我应该考虑另一种方式?我是否必须编写自己的调度程序?