Điểm:2

Triển khai Bộ điều khiển cân bằng tải AWS cho dịch vụ EKS Fargate API

lá cờ ar

Bối cảnh

Tôi đang cố gắng triển khai dịch vụ API được đóng gói vào cụm EKS Fargate và yêu cầu dịch vụ này từ các địa chỉ internet bên ngoài dưới dạng trải nghiệm học tập/POC được thiết kế quá mức. Tôi đang gặp sự cố khi hiểu cách hướng lưu lượng truy cập mạng đến dịch vụ Fargate. Hướng dẫn chính của tôi cho dự án là hai hướng dẫn sau:

Nhưng sự thiếu kinh nghiệm của tôi thể hiện khi phải quyết định xem tôi nên thử thiết lập Cổng API, Bộ cân bằng tải ứng dụng, Bộ điều khiển đầu vào ALB hay sử dụng Bộ điều khiển cân bằng tải AWS, những nỗ lực xa nhất hiện tại của tôi là với cái sau. Tôi có hầu hết cơ sở hạ tầng và các thành phần EKS/Fargate đang hoạt động bằng cách sử dụng tệp Terraform và '.yaml' để sử dụng với kubectl.

Cài đặt

Tôi có cách triển khai sau với một cấu hình Terraform duy nhất đã triển khai thành công:

  • Một VPC có các mạng con riêng tư và công khai, đồng thời bật cả cổng nat và vpn
  • Một cụm EKS với coredns, kube-proxy, vpc-cni và một cấu hình cổng xa duy nhất chọn không gian tên ứng dụng của tôi và phân bổ các nút cho các mạng con riêng của VPC.

Tôi có các cấu hình '.yaml' sau phù hợp giữa các lần thử phương pháp khác nhau:

  • không gian tên.yaml (loại: Không gian tên)
  • triển khai.yaml (loại: Triển khai)
  • triển khai_secret.yaml (loại: Bí mật)
  • dịch vụ.yaml (loại: Dịch vụ, thông số kỹ thuật: loại: NodePort)

Tôi rất vui được đăng chi tiết của bất kỳ tệp nào trong số này nhưng bài đăng này đã rất dài.

Vấn đề

Tôi sẽ chỉ đi vào chi tiết về cách cố gắng làm cho Bộ điều khiển cân bằng tải AWS hoạt động vì đó là phương pháp được sử dụng trong hướng dẫn Hội thảo EKS, nhưng vui lòng cho tôi biết liệu tôi có chắc chắn nên sử dụng một trong các phương pháp khác hay không. Tôi cũng nên nói trước rằng sự cố xảy ra với cả ứng dụng của riêng tôi và ứng dụng mẫu không có gì thay đổi.

Sau khi tôi triển khai cơ sở hạ tầng của mình với Terraform và thành công thiết lập và cài đặt Bộ điều khiển AWS LB Tôi tạo triển khai và dịch vụ của mình với kubectl. Sự cố bắt đầu khi tôi cố gắng tạo đối tượng Ingress (?), cấu hình được cung cấp có dạng:

---
phiên bản api: mạng.k8s.io/v1beta1
loại: Xâm nhập
metadata:
  không gian tên: không gian tên của tôi
  tên: ingress-myapp
  chú thích:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: hướng tới internet
    alb.ingress.kubernetes.io/target-type: ip
thông số kỹ thuật:
  quy tắc:
    - http:
        con đường:
          - con đường: /*
            phụ trợ:
              tên dịch vụ: dịch vụ-myapp
              cổng dịch vụ: 80

Điều này trả về một lỗi nói lỗi: lỗi xác thực "ingress.yaml":, tôi đã bỏ qua chi tiết vì điều này đã được giải quyết trong câu hỏi này dẫn đến điều này yêu cầu kéo. Tôi đã định cấu hình lại tệp để tuân theo định nghĩa cấu hình đã thay đổi, hiện có dạng như sau:

apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
  tên: ingress-myapp
  không gian tên: my-namesace
  chú thích:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/scheme: hướng tới internet
thông số kỹ thuật:
  phụ trợ mặc định:
    dịch vụ:
      tên: dịch vụ-myapp
      Hải cảng:
        số: 80
  quy tắc:
    - http:
        con đường:
          - con đường: /*
            phụ trợ:
              dịch vụ:
                tên: dịch vụ-myapp
                Hải cảng:
                  số: 80
            pathType: Thực hiện cụ thể

Điều này dẫn đến lỗi:

Lỗi từ máy chủ (InternalError): lỗi khi tạo "ingress.yaml": Đã xảy ra lỗi nội bộ: không thể gọi webhook "vingress.elbv2.k8s.aws": Đăng "https://aws-load-balancer-webhook-service.kube -system.svc:443/validate-networking-v1-ingress?timeout=10s": đã vượt quá thời hạn ngữ cảnh

Tôi đi theo cùng với bài này mô tả một vấn đề tương tự, vì vậy tôi đảm bảo rằng tất cả các tài liệu tham khảo của tôi về LBC đều đang sử dụng 2.4.0 nhưng không ảnh hưởng đến vấn đề này. Tôi cũng đã xem xét hai chủ đề này (Sự cố GitHubChủ đề Reddit) nhưng tôi đang cố gắng hiểu giải pháp trong những trường hợp này là gì.

Điều tôi đang suy luận là một số phần của quy trình không thể truy cập địa chỉ bên ngoài khi xác thực đối tượng/cấu hình xâm nhập mới nhưng tôi không chắc thành phần nào đang cố gắng thực hiện yêu cầu đó và đó có phải là sự cố về quyền hoặc mạng đang ngăn chặn nó. Bất kỳ hướng dẫn hoặc gợi ý được đánh giá cao!

Điểm:0
lá cờ za

Bạn cần tạo một nhóm bảo mật AWS cho các cổng 443 và các cổng của nhóm mà nó giao tiếp. (443 -> xx?)

Sau đó thêm quy tắc này vào các nút trong cụm của bạn. Yêu cầu của bạn hết thời gian vì AWS đã xóa tất cả các quyền trong cụm EKS trên các nút.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.