1

我在security-groups注释中使用现有的安全组。但是在通过 Ingress 创建 ALB 时,它附加了一个默认 SG。为什么它没有附加我注释中使用的现有 SG。我正在使用alb-ingress-controller.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: "instance"
    alb.ingress.kubernetes.io/security-groups: sg-**********
    alb.ingress.kubernetes.io/certificate-arn: arn
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80,"HTTPS": 443}]'
spec:
  rules:
  - host: host
    http:
      paths:
      - path: /
        backend:
          serviceName: serviceName
          servicePort: 80
4

2 回答 2

1

注释的实际语法是 alb.ingress.kubernetes.io/security-groups: sg-xxxx, nameOfSg1, nameOfSg2

您需要创建一对 SG。一个附加到 ELB,另一个附加到运行 pod 的工作节点。

如果名称标签为“elb_sg”的 sg-12345 附加到 ELB 并且“worker_sg”附加到工作节点,则注释应为:alb.ingress.kubernetes.io/security-groups: sg-12345, elb_sg, worker_sg

并且不要忘记将 worker_sg 上的入站添加到来自 elb_sg 的所有流量中。

于 2020-02-06T18:04:52.687 回答
0

通过'security-groups'注释指定现有安全组没有问题(在v1.1.2中与aws-alb-ingress-controller没有任何问题,您使用哪个?)。

在创建新的 Ingress 资源时,您是否在 alb-ingress 控制器的 Pod 中看到任何错误?

您可以使用以下命令*检查它:

kubectl logs -n kube-system $(kubectl get po -n kube-system | egrep -o alb-ingress[a-zA-Z0-9-]+)

* 在您的情况下可能会有所不同,具体取决于 alb-ingress 部署到的命名空间。

于 2019-06-28T12:32:12.463 回答