微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一个 Kubernetes Pod 如何为多个用户服务?

如何解决一个 Kubernetes Pod 如何为多个用户服务?

我和我的同事有一个关于一个 Kubernetes Pod 如何为多个用户提供服务的问题。我们的信念是/曾经是一个 Pod 服务于一个最终用户。这是我们的实验。

我们有一个基本的 Angular 前端与 .Net API 服务器通信,该服务器使用在 Linode Kubernetes 集群上运行的 MysqL PVClaim 结构。集群有 3 个节点,具有充足的 RAM、磁盘空间和 cpu。这是'kubectl get all'的打印结果:

C:\development\Kubernetes >kubectl get all

NAME                                  READY   STATUS    RESTARTS   AGE
pod/dataapi-server-57c87f56c6-2fcdz   1/1     Running   0          21h
pod/gems-deployment-c9f6dbdbb-2qhff   1/1     Running   0          20h
pod/MysqL-6d4b9f6f46-8m66h            1/1     Running   0          21h

NAME                            TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
service/dataapi-server          ClusterIP      10.128.6.155    <none>           80/TCP         21h
service/gems-frontend-service   LoadBalancer   10.128.76.185   104.***.**.**    80:31190/TCP   20h 
service/kubernetes              ClusterIP      10.128.0.1      <none>           443/TCP        4d23h
service/MysqL                   ClusterIP      None            <none>           3306/TCP       21h

NAME                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/dataapi-server    1/1     1            1           21h
deployment.apps/gems-deployment   1/1     1            1           20h
deployment.apps/MysqL             1/1     1            1           21h

我和我的同事在两台不同的客户端计算机上并肩工作,在我们各自的 Chrome 浏览器中启动了前端,并且都做了一些基本的独立工作。令我们惊讶的是,我们都能够访问同一个 Pod('gems-deployment-c9...')并高效地工作。根据我们对 Pod 和虚拟机的了解,这对我们来说没有意义。我会在此指出,我们对 Kubernetes 和容器世界还相当陌生。

谁能解释一下为什么会这样?有什么论文可以指点我们吗?我的 Google 搜索只找到了关于每个 Pod 多个容器的论文,这不是我们的情况。

提前致谢!

解决方法

当您向 Angular 应用程序发出常规 HTTP GET 请求时,负载均衡器(服务)会根据节点上的压力确定应由哪个 Pod 接收请求。因为你有一个前端 pod,它只驻留在一个节点上,所以这个节点被选中。

该节点然后创建一个新线程,该线程持续时间与向您发送响应所需的时间一样长,即网页。如果您的请求是同时发生的,节点通常会打开另一个线程并同时为您提供服务,这与您在 Kubernetes 之外托管此前端时会发生的情况相同。

对于您担心会成为问题的问题,节点必须接收到的请求多于它可以有效处理的请求。在这种情况下,优化负载均衡器或提高节点功率都是有效的响应。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。