Trang chủ Thủ Thuật Cách bắt đầu với DevSpace và phát triển nhanh ứng dụng Kubernetes

Cách bắt đầu với DevSpace và phát triển nhanh ứng dụng Kubernetes

0
14
A diagram showing the DevSpace workflow

Cách bắt đầu với DevSpace và phát triển nhanh ứng dụng Kubernetes

An illustration showing the DevSpace logo, a cloud with a terminal symbol inside

DevSpace là một công cụ mã nguồn mở giúp các nhà phát triển nhanh chóng triển khai các ứng dụng gốc đám mây cho các cụm Kubernetes. Nó loại bỏ phần lớn sự phức tạp của Kubernetes truyền thống để bạn có thể quay lại viết mã.

DevSpace là nền tảng bất khả tri và hoạt động với các cụm khác nhau, từ máy cục bộ của bạn đến các dịch vụ công được quản lý phổ biến. Công cụ này là một CLI tự động hóa các hoạt động bằng cách sử dụng các API Kubernetes. Bạn không cần phải cài đặt bất kỳ thứ gì bên trong cụm của mình để sử dụng DevSpace.

Thực tiễn phát triển hiện đại cho Kubernetes

DevSpace mang đến nhiều khía cạnh của trải nghiệm lập trình ứng dụng hiện đại cho các triển khai dựa trên Kubernetes. Nó cho phép bạn chạy môi trường phát triển trên cụm của mình với hỗ trợ tải lại nóng tự động. Khi một tệp cục bộ thay đổi, DevSpace sẽ tự động cập nhật các vùng chứa của bạn với nội dung mới.

Chuyển tiếp cổng tích hợp có nghĩa là bạn có thể sử dụng localhost để truy cập vào việc triển khai của mình. Bạn không cần phải mở cổng hoặc thiết lập HTTP Ingresses trên các cụm phát triển, mang lại trải nghiệm nhà phát triển được cải thiện và bảo mật cao hơn.

A diagram showing the DevSpace workflow
DevSpace

DevSpace cũng hỗ trợ gỡ lỗi. Nó hỗ trợ thiết lập các điểm ngắt bằng cách sử dụng công cụ Trình gỡ lỗi từ xa, cung cấp khả năng kiểm tra trực tiếp các ứng dụng được chứa trong đám mây. Cũng dễ dàng xem nhật ký của vùng chứa hoặc bắt đầu phiên đầu cuối mà không cần chạy các lệnh Kubectl khó sử dụng.

Quảng cáo

Giao diện web chạy trên localhost cho phép bạn theo dõi và tương tác với ứng dụng đang chạy của mình. Bạn có thể thoát hoàn toàn khỏi thiết bị đầu cuối của mình nếu muốn có trải nghiệm hình ảnh hơn.

Cài đặt DevSpace

DevSpace được phân phối dưới dạng tệp nhị phân độc lập hoạt động trên các hệ thống Windows, Mac và Linux. Một số tùy chọn cài đặt có sẵn. Đây là lệnh được khuyến nghị để tải xuống DevSpace cho Linux và thêm CLI vào đường dẫn của bạn:

nhà phát triển
sudo cài đặt devspace / usr / local / bin

Ngoài ra, bạn có thể sử dụng npm, trình quản lý gói Node, để cài đặt và cập nhật DevSpace:

npm install -g devspace

Lệnh này sẽ cung cấp cho bạn một chức năng devspace trong đường dẫn của bạn, miễn là bạn đã cài đặt NPM đã có.

KUBE_CONTEXT ” đang hoạt động của bạn theo cách tương tự như các công cụ hệ sinh thái khác như Kubectl và Helm. Đặt KUBECONFIG thành tệp cấu hình tương thích với Kubectl xác định kết nối cụm của bạn:

xuất KUBECONFIG = / path / to / kubeconfig.yaml

# Sử dụng $ KUBECONFIG
triển khai devspace

Tạo một dự án

Bước đầu tiên trong việc xây dựng với DevSpace là khởi tạo thư mục dự án của bạn. Thao tác này sẽ tạo devspace.yaml chứa cấu hình DevSpace cho kho lưu trữ của bạn.

devspace init
Quảng cáo

Bạn sẽ được nhắc chọn quy trình triển khai mà bạn định sử dụng. DevSpace có thể hoạt động với Kubectl, Helm hoặc Kustomize khi khởi chạy ứng dụng vào cụm của bạn.

Screnshot of the "devspace init" command

QUICKSTART đề xuất là một biểu đồ đặc biệt cho phép bạn xác định các thành phần của ứng dụng, chẳng hạn như máy chủ web giao diện người dùng, máy chủ API phụ trợ và cơ sở dữ liệu, thay vì cung cấp biểu đồ Helm hoặc tệp kê khai Kubectl được tạo theo cách thủ công. Sử dụng điều này nếu bạn đang xây dựng một hệ thống với cấu trúc thông thường và không muốn mất thời gian tạo tài nguyên Kubernetes của riêng mình.

Làm theo lời nhắc để cung cấp cho DevSpace đường dẫn đến Dockerfile của bạn. Bạn sẽ cần cung cấp xác thực sổ đăng ký và một số thông tin cơ bản về hình ảnh của mình, chẳng hạn như cổng mà nó lắng nghe. DevSpace sẽ tự động tạo ra một cấu hình sẵn sàng để sử dụng cho phép bạn chạy devspace deploy để đưa ứng dụng của bạn hoạt động trên Kubernetes.

Nếu bạn không sử dụng tùy chọn bắt đầu nhanh, bạn sẽ cần cung cấp đường dẫn đến biểu đồ Helm hoặc tệp kê khai Kubernetes của mình. Làm theo lời nhắc để tạo cấu hình ban đầu. Sau khi thoát khỏi trình hướng dẫn thiết lập, bạn có thể tiếp tục thêm hình ảnh và triển khai bổ sung bằng cách chỉnh sửa thủ công tệp devspace.yaml

Thêm hình ảnh

Các dự án DevSpace được xây dựng từ một hoặc nhiều hình ảnh vùng chứa. Để đăng ký một hình ảnh trong dự án của bạn, hãy thêm images đó dưới khóa hình ảnh trong tệp devspace.yaml của bạn:

 hình ảnh :
  ứng dụng :
    image : example.com/example/image:latest
    dockerfile : ./Dockerfile
    xây dựng :
      bị vô hiệu hóa : true

Trường image xác định tên thẻ hình ảnh. Trường dockerfile là tùy chọn; khi được đặt, nó sẽ tham chiếu đến đường dẫn đến Dockerfile của hình ảnh trong dự án của bạn. Hình ảnh với Dockerfiles sẽ được tạo tự động bằng devspace build devspace và devspace deploy , trừ khi build.disabledtrue trong cấu hình của hình ảnh.

Quảng cáo

Hình ảnh được xây dựng song song để tăng tốc hiệu suất. --build-sequential buộc các hình ảnh phải được tạo riêng lẻ theo thứ tự chúng được chỉ định thay thế. DevSpace sẽ tự động đẩy từng hình ảnh vào sổ đăng ký tương ứng sau khi quá trình xây dựng hoàn tất.

Hình ảnh không được tạo lại tự động trừ khi DevSpace phát hiện ra thay đổi trong Dockerfile hoặc các tệp trong ngữ cảnh xây dựng của chúng. Bạn có thể buộc xây dựng lại tất cả các hình ảnh đã định cấu hình bằng cờ --force-build

Thêm một triển khai

Phần thứ hai của devspace.yaml là các deployments của bạn. Chúng xác định các tài nguyên sẽ được tạo bên trong cụm của bạn.

 triển khai :
  - tên : "biểu đồ hướng dẫn"
    lãnh đạo :
      biểu đồ :
        name : example / example-app
      giá trị :
        VARIABLE_OVERRIDE : "giá trị mới"
  - tên : "tệp kê khai kubectl"
    kubectl :
      biểu hiện :
- .kube / tệp kê khai

Tệp này xác định hai triển khai riêng biệt, một bằng Helm và Kubectl khác. Khi bạn chạy devspace deploy , cả biểu đồ Helm và tệp kê khai Kubectl của bạn sẽ được cài đặt trong cụm của bạn.

Lặp lại deploy sẽ cập nhật các triển khai của bạn. DevSpace chỉ đăng ký lại các thành phần đã thay đổi trừ khi --force-deploy được sử dụng.

Vì DevSpace hoạt động trên các cụm, việc thúc đẩy triển khai của bạn từ phát triển đến sản xuất là một trường hợp thay đổi biến môi trường KUBECONFIG devspace deploy . Điều này cung cấp cho bạn một cơ chế nhất quán duy nhất để quản lý nhiều triển khai độc lập của hệ thống của bạn.

Sử dụng hồ sơ

DevSpace hỗ trợ các cấu hình cho phép bạn sửa đổi devspace.yaml cho từng môi trường của bạn. Mỗi cấu hình được đặt tên có thể thay thế, hợp nhất và sửa đổi các trường trong tệp cấu hình của bạn.

Bản thân các cấu hình cũng được xác định trong devspace.yaml của bạn:

 hình ảnh :
  api-server :
    image : example.com/api-server:latest
  máy chủ web :
    image : example.com/web-server:latest
  gỡ lỗi :
    image : example.com/debug-tool:latest
# ... bị bỏ qua
hồ sơ :
  - tên : sản xuất
    các bản vá lỗi :
      - op : loại bỏ
        đường dẫn : images.debug
Quảng cáo

Cấu hình được kích hoạt bằng cách chuyển -p hoặc --profile tới các lệnh DevSpace. Đây là cách bắt đầu triển khai bằng cách sử dụng production được xác định ở trên. Việc triển khai sẽ không bao gồm debug vì nó bị xóa bởi một trong các bản vá của hồ sơ.

triển khai devspace - sản xuất hồ sơ

Sử dụng Tải lại nóng

Chức năng tải lại nóng được bật bằng cách thiết lập đồng bộ hóa tệp:

 nhà phát triển :
  đồng bộ :
    - imageSelector : example.com/api-server:latest
      localSubPath : ./api/
      containerPath : / var / www / html
      loại trừ các đường dẫn :
- người bán/

Thêm dev làm trường cấp cao nhất trong devspace.yaml của bạn, sau đó sử dụng sync để định cấu hình tải lại nóng trên cơ sở từng hình ảnh. imageSelector đối sánh các thẻ hình ảnh để áp dụng quy tắc tải lại nóng cho. Các tệp từ localSubPath trong thư mục làm việc của bạn sẽ được đồng bộ hóa với containerPath trong các phiên bản vùng chứa được triển khai.

Bắt đầu một phiên tải lại nóng bằng cách chạy devspace dev hoặc devspace sync . Lệnh cũ khởi động tất cả các tính năng môi trường dành cho nhà phát triển của DevSpace, bao gồm chuyển tiếp cổng và phát trực tiếp nhật ký.

Tải lại nóng mặc định thay thế các tệp trong các vùng chứa hiện có. Nó tương tự như việc sử dụng khối lượng Docker và gắn kết liên kết khi làm việc với các cá thể vùng chứa cục bộ. Trong một số trường hợp, bạn có thể muốn bắt đầu triển khai DevSpace mới khi hệ thống tệp của bạn thay đổi. Điều này đạt được thông qua tùy chọn autoReload

 hình ảnh :
  api :
    image : example.com/api-server:latest
triển khai :
  - tên : api-deploy
  # ... bị bỏ qua
nhà phát triển :
  autoReload :
    đường dẫn :
- ./kernel/*
    hình ảnh :
- example.com/api-server:latest
    triển khai :
- triển khai api
Quảng cáo

Ví dụ này sẽ triển khai lại api-deployment bất cứ khi nào các tệp trong kernel cục bộ của bạn thay đổi. Điều này là lý tưởng khi bạn sửa đổi các tệp cần được chạy qua quá trình xây dựng để làm cho chúng hữu ích cho vùng chứa của bạn.

Cổng chuyển tiếp

Chuyển tiếp cổng được định cấu hình thông qua trường dev.ports devspace.yaml của bạn. Chuyển tiếp ngược cũng được hỗ trợ, cho phép các localhost trong vùng chứa của bạn ánh xạ tới các cổng trên máy cục bộ của bạn.

 nhà phát triển :
  các cổng :
    - imageSelector : example.com/api-server:latest
      chuyển tiếp :
        - cổng : 8080
          remotePort : 80
      ngược lại :
        - cổng : 9000
          từ xa : 9000

Ví dụ này thiết lập một chuyển tiếp từ localhost:8080 trên máy của bạn đến cổng 80 trong các vùng chứa chạy hình ảnh example.com/api-server Ngoài ra còn có một chuyển tiếp ngược hướng lưu lượng truy cập trong vùng chứa đến localhost:9000 quay trở lại cổng 9000 trên máy của bạn.

Các tính năng khác

Bên cạnh các khả năng được đề cập ở đây, DevSpace cũng cung cấp hỗ trợ cho một số nhóm tính năng khác cho phép bạn giám sát việc triển khai, tương tác với vùng chứa và định cấu hình quy trình phát triển nâng cao:

  • Khởi chạy thiết bị đầu cuối tự động cho phép bạn bắt đầu một phiên shell từ xa mỗi khi bạn chạy devspace dev .
  • Việc mở URL tự động bắt đầu các trang web và ứng dụng web trong trình duyệt của bạn khi bạn vào chế độ phát triển.
  • Ghi nhật ký có thể định cấu hình xác định vùng chứa nào sẽ xuất hiện trong luồng nhật ký chế độ nhà phát triển.
  • Các lệnh tùy chỉnh hoạt động như các phím tắt cho các hành động phổ biến, giúp các thành viên mới trong nhóm tương tác với các triển khai của bạn mà không cần tìm hiểu các quy trình dài dòng trong Kubectl.
  • Hooks chạy các lệnh trong quá trình triển khai, cho phép bạn định cấu hình vùng chứa theo cách thủ công hoặc ghi lại các triển khai mới vào một dịch vụ giám sát tập trung.
  • Giao diện người dùng chạy tự động ở chế độ phát triển với devspace dev và có thể được mở trong trình duyệt của bạn bằng devspace ui .

DevSpace cũng cung cấp các plugin có thể bổ sung nhiều chức năng hơn cho hệ thống. API plugin hỗ trợ cài đặt từ các URL từ xa hoặc tập lệnh cục bộ và tạo điều kiện cho các lệnh, hook và biến mới. Việc phát triển plugin của riêng bạn cung cấp một cách để chuẩn hóa việc sử dụng DevSpace của bạn trên nhiều dự án độc lập.

Triển khai trong đường ống CI / CD

DevSpace có thể xử lý các triển khai sản xuất như một phần của đường ống CI / CD của bạn. Nó cung cấp hình ảnh Docker chính thức và hỗ trợ sử dụng không tương tác nếu bạn bao gồm các bộ chọn rõ ràng như -l cho nhãn trong các lệnh của mình.

Quảng cáo

Việc triển khai bên trong đường ống CI có thể trông như thế này:

echo $ KUBECONFIG_CI_VARIABLE> / path / to / kubeconfig
xuất KUBECONFIG = / path / to / kubeconfig
triển khai devspace - sản xuất hồ sơ - thời gian chờ 60 - chờ --skip-xây dựng

Điều này sẽ triển khai ứng dụng của bạn bằng cách sử dụng hồ sơ DevSpace production --skip-build hướng dẫn DevSpace không xây dựng hình ảnh của bạn. Các công trình xây dựng thường phải được xử lý như một giai đoạn riêng biệt trước đó trong đường dẫn của bạn.

--wait buộc DevSpace phải đợi tính sẵn có của số Pod được chỉ định trong devspace.yaml của bạn, thay vì kết thúc ngay sau khi bạn chạy lệnh. Điều này thích hợp hơn cho môi trường CI nơi bạn muốn xác nhận rằng khối lượng công việc của bạn đang hoạt động. Cho phép DevSpace thoát mà không cần chờ đợi có thể có nghĩa là đường dẫn của bạn được đánh dấu là thành công ngay cả khi có sự cố triển khai.

Phần kết luận

DevSpace đang đạt được sức hút như một công cụ triển khai Kubernetes định hướng cho nhà phát triển, cung cấp những thông tin tóm tắt hữu ích cho các hoạt động chính. Nó làm giảm số lượng YAML cần thiết để khởi chạy các vùng chứa vào một cụm, thay thế nó bằng các phím cấu hình đơn giản và các lệnh đầu cuối xác định, xây dựng và bắt đầu hình ảnh.

The DevSpace UI
DevSpace

Là một công cụ bất khả tri về nền tảng và môi trường, DevSpace cho phép các nhà phát triển bớt lo lắng về các đặc điểm riêng biệt của các cụm riêng lẻ. Không phân biệt mục tiêu triển khai, trải nghiệm tổng thể tương tự như xây dựng một hệ thống truyền thống trên máy cục bộ của bạn. Điều này giúp làm mềm đường cong học tập Kubernetes bằng cách ánh xạ các khái niệm trở lại các thực tiễn phát triển được hiểu rộng rãi hơn.

Using Kubernetes Annotations, Labels, and Selectors

Sử dụng Kubernetes Chú thích, Nhãn và Bộ chọn

How to Transfer a Github Repository to Your Organization (or Another User)

Cách chuyển Kho lưu trữ Github cho Tổ chức của bạn (hoặc Người dùng khác)

How to Run MongoDB in a Docker Container

Cách chạy MongoDB trong Docker Container

How to Transfer a Github Repository to Your Organization (or Another User)

Cách sao chép hoặc tải xuống một nhánh cụ thể từ Github

How to Transfer a Github Repository to Your Organization (or Another User)

Cách tải xuống các tệp đơn từ kho lưu trữ Github

How to Security Scan Docker Images With Anchore

Cách bảo mật quét hình ảnh Docker bằng Anchore

Dịch từ: https://www.cloudsavvyit.com/14690/how-to-get-started-with-devspace-and-rapidly-develop-kubernetes-apps/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây