我需要设计一个包含多个spa页面的网站解决方案。 我认为高级设计如下:-
每个spa页面将只有一台计算机,该计算机仅呈现UI,执行SSR并从浏览器接收请求。 例如,www.abc.com / foo将被路由到此计算机。我正在考虑将应用程序UI代码放入kubernetes pod中并将其托管在机器/节点上。同样使用KOPS,我将管理节点和Pod的自动缩放。
现在,窗格中的此应用程序将调用其他窗格以获取要在网页上显示的数据。例如,将从pod1调用www.abc.com/API/foo。我正在考虑制作另一个Pod,它将与网页Pod节点位于同一节点上。
所以现在我有2个Pod驻留在一个节点上,该节点会根据流量自动缩放。 同样,对于我网站上的每个页面,我都会有一个节点,每个节点有2个容器。
我的问题如下:-
答案 0 :(得分:2)
以上是否有最佳实践或其他设计解决方案?
您可以使用PodAffinity
来共同放置豆荚。
我应该如何实现基于路径的路由,例如www.abc.com/foo应该调用 我的网页窗格?
您可以使用Kubernetes Ingress
。由于这是第7层设施,因此您可以执行多个主机路径,请记住,通常使用LoadBalancer类型的服务将其暴露给外部。
如何在不使用互联网的情况下将Pod暴露给外部世界(即互联网) 负载均衡器?
您可以使用// Headings//
$headers[] = ['Id', 'Name'];
// 2 Rows //
$data[0] = ['1', 'John'];
$data[1] = ['2', 'Roger'];
Excel::create('report', function($excel) use($headers, $data) {
$excel->sheet('sheet 1', function($sheet) use($headers, $data){
$merged_records = array_merge($headers, $data);
$sheet->fromArray($merged_records, null, 'A1', false, false);
});
})->export('csv');
类型的NodePort
。请注意,您通常使用Ingress或NodePort服务,这种方法的缺点是您将无法执行路径,并且必须在应用程序中进行处理。
每个豆荚应该有不同的存储库吗?
git仓库?当然,每个应用程序必须具有不同的容器映像。