Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Kubernetes:如何正确更改apiserver运行时设置_Amazon Web Services_Cron_Kubernetes - Fatal编程技术网

Amazon web services Kubernetes:如何正确更改apiserver运行时设置

Amazon web services Kubernetes:如何正确更改apiserver运行时设置,amazon-web-services,cron,kubernetes,Amazon Web Services,Cron,Kubernetes,我正在使用kubeaws在aws上运行一个Kubernetes集群,一切正常 现在,我意识到在我使用的版本(v1.7.10_coreos.0)中没有打开cron作业,而Kubernetes的文档仅说明以下内容: 对于集群(

我正在使用
kubeaws
在aws上运行一个Kubernetes集群,一切正常

现在,我意识到在我使用的版本(
v1.7.10_coreos.0
)中没有打开cron作业,而Kubernetes的文档仅说明以下内容:

对于集群(<1.8)的早期版本,您需要通过向API服务器传递--runtime config=batch/v2alpha1=true来显式启用批处理/v2alpha1 API(有关更多信息,请参阅打开或关闭集群的API版本)

该文本中指向的文档仅说明以下内容(这是实际的完整文档):

在启动API服务器时,通过传递--runtime config=API/flag可以打开或关闭特定的API版本。例如:要关闭v1 API,请传递--runtime config=API/v1=false。运行时配置还支持2个特殊键:api/all和api/legacy,分别控制所有和遗留api。例如,要关闭除v1之外的所有API版本,请传递--runtime config=API/all=false,API/v1=true。就这些标志而言,遗留API是那些已明确弃用的API(例如v1beta3)

我未能找到有关如何更改正在运行的集群的配置的信息,当然,我不想尝试在
api服务器上重新运行该命令

请注意,kube aws仍然使用
hyperkube
,而不是
kubeadm
。另外,
/etc/kubernetes/manifests
-目录仅包含
ssl
-目录

我要应用的设置是:
--runtime config=batch/v2alpha1=true

最好使用
kubectl
应用此设置并重新启动
apiserver
的正确方法是什么


谢谢。

batch/v2alpha1=true
kube-aws
中默认设置。您可以发现,

对于
/etc/kubernetes/manifests
来说,它不仅是空的,而且是完全缺失的,这是非常非常不寻常的,因为在90%的情况下,apiserver是由
kubelet
静态配置的,以摆脱需要工作的apiserver使用kubectl来对抗的鸡毛蒜皮的局面。您的安装程序可能正在使用systemd管理kubelet和apiserver,因此
systemctl列出单元| grep-E'kube | apiserver'
,并查看是否显示任何有趣的内容。但是不管怎样,改变apiserver的命令行是我所知道的实现你所要求的唯一机制谢谢你的评论,Matthew!该命令的输出给我一个错误:
无法获得D总线连接:未知错误-1
。我正在一个
apiserver
pod上运行它。如果清单目录为空,添加它是否安全?我非常好奇如何更新配置,然后重新启动apiserver。我只是杀了豆荚吗?或者我可以使用
kubectl
运行命令来重新启动apiserver吗?我正在一个apiserver吊舱上运行它啊,现在我知道发生了什么;很抱歉:您需要在这些apiserver的节点上执行该操作(以及对apiserver运行方式的所有其他更改)(同样,我希望这些节点是静态的);由于注释长度,我将在单独的注释中回答下半部分如何更新配置,然后重新启动apiserver假设(!)apiserver是由静态清单声明的,那么当磁盘上的文件发生更改时(在几秒钟的特定窗口内),我希望
kubelet
注意到更改,杀死apiserver容器/Pod,并使用新的配置重新启动它——就像它通过来自apiserver本身的命令进行编程一样。如果您有多个主节点,那么您还必须在验证第一次更改是否达到预期效果后,更新其他节点上匹配的apiserver清单Hanks Matthew,非常感谢您的帮助!显然,我没有用alpha类型集测试它,这有点尴尬。我真的以为我做到了。但是,您现在提供的信息对我来说仍然非常有价值,因为我还没有找到相关文档。我在哪里可以找到静态清单?因为它不在
/etc/kubernetes/manifests
中?请注意,我使用的是
kube-aws
,它使用的是
hyperkube
,而不是
kubeadm
,用于部署。您完全正确。该死,我想知道我怎么没能考上。我确信我做到了。不管怎么说,这工作很有效:)谢谢!