簡體   English   中英

為aws-alb-ingress-controller設置ALB的DNS名稱

[英]Set ALB's DNS name for aws-alb-ingress-controller

我正在使用AWS實現入口控制器,並遵循教程。

當創建一個進入如圖所示這里 ,主機名應給予。

spec:
  rules:
  - host: echoserver.example.com #How to let kubernate assign ALB's DNS name and not give our own DNS name.
    http:
      paths:
      - path: /
        backend:
          serviceName: echoserver
          servicePort: 80

但是我想給ALB生成的DNS名稱,因為我沒有自己的DNS名稱。 有什么辦法嗎? 我試過省略host屬性。 但是當我按照上面提到的教程(第13節)中描述的入口描述運行時

 kubectl describe ing -n echoserver echoserver  

上述命令的響應中的Address值為空,因此無法訪問入口。

更新

我創建了一個ALB(通過aws UI,並允許將請求轉發到默認創建的目標組),並將其DNS名稱設置為入口yaml文件中的主機名(用簡單字母表示)。 但我看不到它起作用。 我按照上面教程中提到的步驟進行操作。

kubectl logs -n kube-system \
    $(kubectl get po -n kube-system | \
    egrep -o alb-ingress[a-zA-Z0-9-]+) | \
    egrep -o '\[ALB-INGRESS.*$'

當執行上述log命令時,僅返回以下輸出:

[ALB-INGRESS] [controller] [INFO]: Log level read as "", defaulting to INFO. To change, set LOG_LEVEL environment variable to WARN, ERROR, or DEBUG.
[ALB-INGRESS] [controller] [INFO]: Ingress class set to alb
[ALB-INGRESS] [controller] [INFO]: albNamePrefix undefined, defaulting to f0591ff6

按照步驟12,當執行log命令時,

kubectl logs -n kube-system \
    $(kubectl get po -n kube-system | \
    egrep -o alb-ingress[a-zA-Z0-9-]+) | \
    egrep -o '\[ALB-INGRESS.*$' | \
    grep 'echoserver\/echoserver'

沒有任何日志。

另外,在執行以下命令時:
kubectl描述ing -n echoserver echoserver
響應為:

Name:             echoserver
Namespace:        echoserver
Address:
Default backend:  default-http-backend:80 (172.17.0.4:8080)
Rules:
  Host                                                Path  Backends
  ----                                                ----  --------
  ingress-alb-3455057285.us-east-2.elb.amazonaws.com
                                                      /   echoserver:80 ()
Annotations:
Events:

任何想法請問哪里出了問題?
我在這里沒有設置任何IAM角色。 如果需要,請告訴我該怎么做。

不能使用這樣的入口,因為入口需要DNS名稱,因為它們需要能夠路由流量。

您可以通過簡單地編輯主機文件來解決此問題:

my_fake_dns <ip_of_alb>

您可能想嘗試使用類型為LoadBalancer服務,服務會自動為您生成一個ELB(不是ALB)或NLB

創建執行以下操作的Shell腳本將非常容易:

  1. 描述您的AWS負載均衡器

    ELBv1

     aws elb describe-load-balancers --load-balancer-name my-load-balancer 

    ELBv2

     aws elbv2 describe-load-balancers --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 
  2. 從步驟1的輸出中過濾LB DNS名稱:

    ELBv1

     jq '.LoadBalancerDescriptions[].DNSName' 

    ELBv2

     jq '.LoadBalancers[].DNSName' 
  3. 將步驟3的結果插入您的入口Yaml模板文件

  4. 將步驟4中生成的YAML文件應用於您的集群。

暫無
暫無

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

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