Điểm:1

Tránh xung đột của các biến môi trường nhóm với các liên kết kiểu Docker

lá cờ in

Chúng tôi đang chạy hoặc các thành phần trong Kubernetes với Docker làm thời gian chạy vùng chứa. Một vấn đề với nó là môi trường nhóm bị ô nhiễm với các biến liên kết kiểu Docker như

  • SERVICENAME_PORT_8181_TCP
  • SERVICENAME_PORT_HTTP
  • .....
  • DỊCH VỤNAME_PORT

cho mỗi dịch vụ hiển thị (những dịch vụ trong cùng một không gian tên). Trong tình huống này, các biến được tạo tự động có xung đột với môi trường được khai báo rõ ràng là khá dễ dàng. Điều này đôi khi dẫn đến các vấn đề khó chẩn đoán. Tôi cũng không muốn dựa vào các biến tự động đó vì muốn các vùng chứa không phụ thuộc vào chi tiết cấu hình dịch vụ Kubernetes. Hiện tại tôi đang thêm các tiền tố tên duy nhất vào các biến rõ ràng để tránh những xung đột như vậy.

Có cách nào để định cấu hình cụm để không thêm các biến tự động đó cho từng dịch vụ hiển thị không? Ngoài ra, sẽ sử dụng thời gian chạy khác như chứa đựng giải quyết vấn đề? Tôi ngạc nhiên rằng không có giải pháp nào có thể google được dễ dàng cho vấn đề này vì cấu hình thông qua các biến môi trường được coi là một phương pháp hay. Nói chung, làm thế nào để tôi sử dụng môi trường mà không gặp phải xung đột đặt tên như vậy? Hoặc tên dịch vụ được coi là một phần của hợp đồng với container và tôi không nên thay đổi chúng một cách tự do?

Điểm:2
lá cờ in

Có cách nào để định cấu hình cụm để không thêm các biến tự động đó cho từng dịch vụ hiển thị không?

Có và không: không phải toàn cụm, AFAIK, nhưng enableServiceLinks: sai lĩnh vực trong thông số kỹ thuật: được thiết kế để cho phép bạn tắt chúng đi

Ngoài ra, việc sử dụng thời gian chạy khác như containerd có giải quyết được vấn đề này không?

Không, những cái tên đó đã thêm tinh thần tương thích với docker, nhưng hoàn toàn không liên quan đến docker - chúng là tiêm bởi kubelet

Nói chung, làm thế nào để tôi sử dụng môi trường mà không gặp phải xung đột đặt tên như vậy? Hoặc tên dịch vụ được coi là một phần của hợp đồng với container và tôi không nên thay đổi chúng một cách tự do?

Một lựa chọn khác là thay vì cấm bán buôn chúng, bạn cũng có thể che giấu cụ thể những thứ làm phiền ứng dụng của bạn; những cái kết thúc trong _HTTP đặc biệt có vấn đề với Spring Boot khi có một Dịch vụ của ai siêu dữ liệu: {tên: là một số tên siêu chung chung như dịch vụ hoặc người phục vụ

Bạn có thể làm điều đó trên mỗi Triển khai:

vi:
- tên: SERVICENAME_PORT_HTTP
  # bỏ qua giá trị: chỉ đặt nó thành chuỗi trống trong vùng chứa
# và phần còn lại

hoặc bạn có thể khai báo một Bản đồ cấu hình chứa các bản đồ gây khó chịu và bán buôn ghi đè lên chúng bằng envTừ: (để không phải vá từng Deployment bị ảnh hưởng

lá cờ in
Cảm ơn! Tôi thích `enableServiceLinks: false`. Tùy chọn cuối cùng, che giấu các biến một cách rõ ràng, dường như không thực tế vì người ta nên biết rằng chúng đang cản trở, điều này có thể không rõ ràng (đó là vấn đề tôi đã bắt đầu) và tên sẽ thay đổi nếu có bất kỳ ai đổi tên dịch vụ hoặc tạo những cái mới.

Đă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.