Kubernetes (EKS) 设计混淆

Kubernetes (EKS) Design confusions

我对 Kubernetes 有点陌生,我正在使用 EKS。 我有两个主要的应用程序,其中有许多 pods,并且我已经设置了一个 ELB 用于外部访问。

我也有一个小应用程序,比如 1-2 pods。我不想只为这个小应用程序设置 ELB。我检查了节点端口,但在那种情况下,我无法使用默认的 HTTPS 端口 443。

所以我觉得在这种情况下最好的办法是将小型应用程序带到集群之外,然后在 EC2 实例中进行设置。或者是否有其他方法可以在将小型应用程序保留在集群本身内的同时公开该小型应用程序?

您可以尝试使用主机网络(节点),例如主机端口(不建议在k8s中用于产品)

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      ports:
        - containerPort: 80
          hostPort: 443

The hostPort feature allows to expose a single container port on the host IP. Using the hostPort to expose an application to the outside of the Kubernetes cluster has the same drawbacks as the hostNetwork approach discussed in the previous section. The host IP can change when the container is restarted, two containers using the same hostPort cannot be scheduled on the same node and the usage of the hostPort is considered a privileged operation on OpenShift.

额外

I don't want to set up a elb just for this small app.

理想情况下,您必须将部署与入口和入口控制器一起使用。因此,整个 EKS 集群将有 单个 ELB,所有服务都将使用该单点。

如果需要,所有 PODs 或部署都将 运行 到一个集群中。单点 ingress 将处理进入 EKS 集群的流量。

https://kubernetes.io/docs/concepts/services-networking/ingress/

您可以阅读这篇关于如何在 EKS aws 中设置入口的文章,这样您就会有所了解。

您可以使用不同的域来公开服务。

示例

https://aws.amazon.com/premiumsupport/knowledge-center/terminate-https-traffic-eks-acm/