2015-11-26 21 views
7

Tôi có hai cụm Kubernetes riêng biệt sẽ được sử dụng cho dàn dựng và môi trường sản xuất tương ứng. Tôi muốn có các biểu thức YAML cho các đối tượng Kubernetes API mà tôi sẽ đệ trình cho mỗi cluster, nhưng một số đối tượng sẽ có các cấu hình hơi khác nhau giữa hai môi trường.Sử dụng các giá trị động trong Kubernetes biểu hiện

Như một ví dụ minh họa, hãy tưởng tượng chạy một đăng ký Docker nội bộ trên mỗi cụm, một sử dụng S3 làm đầu lưu trữ và một sử dụng kết thúc GCS. Thùng chứa đăng ký có thể chấp nhận các giá trị cấu hình này dưới dạng biến môi trường hoặc đọc từ tệp, cả hai Kubernetes đều hiển thị hỗ trợ, nhưng tôi nên điền các giá trị này cho từng môi trường như thế nào?

Về cơ bản những gì tôi muốn là một cách để có một biểu hiện trông giống như thế này, nơi mà các cú pháp $() là suy biến mà sẽ xảy ra trên máy chủ khi manifest được gửi:

--- 
apiVersion: v1 
kind: Pod 
metadata: 
    name: foo 
spec: 
    containers: 
    - name: foo 
     image: foo 
     env: 
     - name: bar 
      value: $(etcdctl get /path/to/bar) 

tôi có thể viết các mẫu sử dụng trình giữ chỗ cho các giá trị và sau đó xử lý mẫu, kéo các giá trị thực từ một số nguồn bên ngoài, để tạo ra tệp kê khai cuối cùng thực sự được gửi tới cụm. Tuy nhiên, tôi nghĩ rằng tôi sẽ hỏi trước tiên trong trường hợp một công cụ thực hiện điều này đã tồn tại, hoặc có một số cách thức may mắn của Kubernetes để làm điều này mà tôi không biết. Nó chắc chắn có vẻ như một cái gì đó mà nhiều người sẽ cần phải làm để sử dụng Kubernetes.

Các ý tưởng khác tôi đã bao gồm việc sử dụng một số kết hợp v.v., confd, và tập lệnh trên các nút máy chủ, nhưng điều này bắt đầu đi vào lĩnh vực quản lý cấu hình máy chủ mà tôi muốn tránh với khá nhiều chi phí. Tôi đang sử dụng CoreOS và các host được cung cấp hoàn toàn thông qua coreos-cloudinit. Nói cách khác, không có gì được thao tác trên hệ thống máy chủ không được xác định tại thời điểm nút được tạo ra, vì vậy các công cụ quản lý cấu hình truyền thống như Ansible đã hết.

Tôi biết hệ thống bí mật của Kubernetes, nhưng một số giá trị biến này có thể khá lớn và hầu hết chúng không phải là bí mật.

Trả lời

4

Bạn không thể thực sự thực hiện việc này ngay bây giờ. Vấn đề này để làm theo nếu bạn quan tâm đến khuôn mẫu là https://github.com/kubernetes/kubernetes/issues/11492

Ngoài ra, đây hiện đang là một chủ đề của cuộc thảo luận trong SIG cấu hình https://groups.google.com/forum/#!forum/kubernetes-sig-config

tôi muốn đề nghị bạn đăng ký đã quan tâm đến các tính năng trong một của những nơi đó.

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