簡體   English   中英

AWS ec2 實例集群和入口 controller

[英]AWS ec2 instances clusters and ingress controller

我有一個非 EKS AWS kubernetes 集群,有 1 個主節點 3 個工作節點

I am trying to install nginx ingress controller in order to use the cluster with a domain name but unfortunately it does not seem to work, the nginx ingress controller service is not taking automatically an IP and even if I set manually an external IP this IP is沒有在 80 端口應答。

如果您正在尋找公共領域。 將 nginx-ingress 部署(服務)公開為將創建 ALB 的負載均衡器。 然后您可以將域名路由到 R53 中的 ALB 別名

External IP仍處於待處理狀態的原因是您的集群前面沒有負載均衡器來為其提供外部 IP,就像 EKS 一樣。 您可以通過使用 kubeadm 使用kubeadm --cloud-provider選項提升集群來實現它。

您可以按照以下教程了解如何成功實現它:

Kubernetes、Kubeadm 和 AWS 雲提供商

設置 Kubernetes AWS 雲提供商

Kubernetes:第 2 部分 — 使用 AWS 雲提供商和 AWS LoadBalancer 在 AWS 上設置的集群

有幾種不同的解決方案..我最喜歡的解決方案是

  • 像 ingress-nginx 一樣使用 Ingress Controller(有多個不同的 Ingress Controller 可用於 Kubernetes, 這里提供了一個很好的比較)

  • 將 IngressController 服務配置為使用 NodePort 並使用類似 30080 的端口

  • 以 Terraform 為例,創建自己的 AWS ALB,並將 NodePort 30080 添加到 TargetGroup

  • 創建一個 Ingress 資源來配置 IngressController

整個流量可能如下所示:

車流量

如果您還有一些問題,請在這里問他們:)

是的,您必須將部署公開為服務 kubectl expose deployment {deploymentname} -n ns ==type=Loadbalancer --name={name}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM