6

Tôi đang chia sẻ cùng một cụm 2 namespace: dàn dựngsản xuất. Sự khác biệt duy nhất giữa hai không gian tên là:Staging và sản xuất trên Kubernetes

  1. Volumes gắn vào vỏ nhất định
  2. Một vài web URL cho thân nhân giải quyết
  3. (kiên trì riêng biệt giữa dànsản xuất, rõ ràng!) Một vài khu công nghiệp để cơ sở dữ liệu sử dụng cho sự kiên trì tinh vi

tôi đã quản lý để giải quyết (2) và(3) như sau, để giữ một single YAML tập tin cho tất cả ReplicationControllers:

  • Sử dụng ConfigMaps địa phương để một không gian tên để xác định bất kỳ cấu hình được truyền qua các biến môi trường vào pods
  • Sử dụng Dịch vụ với thiết bị đầu cuối để xử lý một entry trỏ DNS để IP nội bộ khác nhau

Tuy nhiên, tôi không thể tìm thấy một cách thỏa đáng để có một tài liệu tham khảo cho một gcePersistentDisk 's pdName - Tôi dường như không thể sử dụng một configMap, vì thế một chút bối rối. Điều gì sẽ là cách thích hợp để đi về điều này? Cách thay thế tốt nhất có vẻ là duy trì 2 tệp YAML riêng biệt với các chuỗi khác nhau, nhưng điều này có mùi mã vì vi phạm DRY.

Ngoài ra, bất kỳ lời bình luận mang tính xây dựng trên phần còn lại của thiết lập của tôi như đã đề cập ở trên được đánh giá cao :-)

Trả lời

2

Bạn có thể có thể tạo ra một PersistentVolumeClaim trong mỗi không gian tên. Hãy xem Can a PVC be bound to a specific PV? về cách "liên kết trước" PersistentVolumes với PersistentVolumeClaims.

Có thể không phải là giải pháp lý tưởng nhưng nó có thể hoạt động 'cho đến khi PVC hỗ trợ bộ chọn nhãn.

+0

+1 Đã hoàn toàn bị mất trên 'PersistentVolumeClaim's trong khi đọc tài liệu! Có cách nào để tập tin vào 'kubectl create'? Bằng cách đó, chúng tôi có thể thay thế chuỗi đơn giản thông qua lệnh "cấp cao nhất" thay vì nhảy qua các vòng này – Angad

+0

'sed ... | kubectl create -f -' sẽ hoạt động. – jayme

+0

Tôi nghĩ rằng 'mustache' chạy trong CLI là lý tưởng, cho bạn có thể đặt shtuff của bạn trong một tập tin JSON tốt đẹp :-) https://www.npmjs.com/package/mustache – Angad

Các vấn đề liên quan