我正在使用AWS实现入口控制器,并遵循this教程。
在创建here所示的入口时,应提供主机名。
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文件中的主机名(用简单字母表示)。但我看不到它起作用。我遵循以上above tutorial中提到的步骤。
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角色。如果需要,请告诉我该怎么做。
答案 0 :(得分:1)
不可能使用这样的入口,入口需要一个DNS名称,因为它们需要能够路由流量。
您可以通过简单地编辑主机文件来解决此问题:
my_fake_dns <ip_of_alb>
您可能想尝试使用Service of type LoadBalancer,它会自动为您生成ELB(不是ALB)或NLB。
答案 1 :(得分:1)
创建执行以下操作的shell脚本将非常容易:
描述您的AWS负载均衡器
aws elb describe-load-balancers --load-balancer-name my-load-balancer
aws elbv2 describe-load-balancers --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188
从步骤1的输出中过滤LB DNS名称:
ELBv1
jq '.LoadBalancerDescriptions[].DNSName'
ELBv2
jq '.LoadBalancers[].DNSName'
将第3步的结果插入到您的入口Yaml模板文件中