2017-04-09 17 views
6

Công ty của tôi đã chạy Kuberenetes hơn một năm nay và GitLab trong khoảng 6 tháng. Gần đây chúng tôi đã nâng cấp lên GitLab 9.x và đang gặp sự cố khi tìm ra quyết định về quyết định xung quanh cấu hình ứng dụng CI + với Kube. Tính năng này thật tuyệt vời và rất thích làm cho nó hoạt động trong môi trường của chúng tôi. Có vẻ như GitLab đang mong bạn chỉ có một thiết lập cụm với tất cả các môi trường của bạn bên trong một cụm được chia nhỏ theo không gian tên sẽ bằng dịch vụ/ứng dụng và ứng dụng của bạn sẽ bằng môi trường của bạn. Đây là những gì nó trông giống như GitLab muốn môi trường Kuberenetes của tôi trông giống như, một cụm duy nhất với dịch vụ của bạn chia thành không gian tên:GitLab 9.x Tích hợp Kubernetes

namespace = hello-world 
app = development 
app = qa 
app = production 

nơi trong một ví dụ thế giới thực chúng tôi muốn có điều ngược lại đó sẽ làm việc tốt với một cụm cũng như

DEVELOPMENT CLUSTER 
namespace = development 
app = hello-world 

QA CLUSTER 
namespace = qa 
app = hello-world 

PRODUCTION CLUSTER 
namespace = production 
app = hello-world 

Có không gian tên là ứng dụng và ứng dụng là môi trường, chúng tôi sẽ không thể nâng cấp lên phiên bản mới nhất của kube mà không nâng cấp tất cả. Có lẽ tôi đang thiếu một cái gì đó nhưng dựa trên những gì tôi đang đọc và sau khi thử nghiệm này, có vẻ như đây là cách nó được thiết kế.

Để tham khảo đây là những gì CI của tôi trông giống như ngay bây giờ để làm cho hội đồng quản trị triển khai + terminal hạnh phúc

development: 
    <<: *deploy_definition 
    stage: development 
    environment: hello-world 
    script: 
     deploy.sh -a "hello-world" 

nhưng nó sẽ giống như thế này

development: 
    <<: *deploy_definition 
    stage: development 
    environment: development 
    script: 
     deploy.sh -a "hello-world" 

Để thêm vào sự nhầm lẫn này, họ cung cấp cho bạn chỉ một chủ Kubernetes để kết nối trong tab tích hợp.

Điều này có đúng không, hoặc tôi có thiếu gì đó không?

+0

Hey, vì bạn là một trong số ít tôi có thể tìm thấy những người đã triển khai bảng làm việc, bạn có thể mở rộng một chút về những gì này trông như thế nào? Cụ thể, mỗi giai đoạn cần môi trường nào? Ngay bây giờ chúng ta đang chạy 'review/*' environment và 'prod' nhưng trong ví dụ của bạn, có vẻ như bạn chỉ có thể triển khai tới một môi trường với' ' –

+0

@ north.mister đúng. Một khi bạn đã thiết lập mọi thứ với tích hợp kubernetes, thì bạn cần phải cấu hình ci của bạn như tôi đã làm ở trên. Cách duy nhất tôi có thể làm cho nó hoạt động là bằng cách đặt tên môi trường trong tệp gitlab-ci của tôi giống như tên ứng dụng trong mẫu triển khai kubernetes, cho ref https://kubernetes.io/docs/concepts/workloads/ bộ điều khiển/triển khai /. Điều này có thể sẽ làm việc cho bạn vì bạn chỉ có một môi trường kubernetes duy nhất nhưng chúng tôi có một cụm cho mỗi môi trường, vì vậy nó không thành công cho tôi. Hy vọng rằng điều này sẽ giúp bạn ra ngoài. –

Trả lời

5

Bạn chính xác. Tôi thấy nó bực bội quá.

Nhưng bạn có thể sử dụng các môi trường ngay cả khi không tích hợp kubernetes họ development: <<: *deploy_definition stage: development environment: name: development url: https://development.yourdomain.com script: deploy.sh -a "hello-world"

Kiểm tra các bài tôi đã viết gần đây về cấu hình tự động triển khai đến kubernetes từ gitlab.

http://blog.lwolf.org/post/how-to-create-ci-cd-pipeline-with-autodeploy-k8s-gitlab-helm/

+0

Phương pháp này có hỗ trợ triển khai các bảng không? Đó là mục tiêu duy nhất tôi có ở đây. –