sách gpt4 ăn đã đi

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 30 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài blog CFSDN này nói về cách sử dụng chi tiết của tiện ích mở rộng Wasm Envoy được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm tới bài viết này thì nhớ like nhé.

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

giới thiệu

Chúng tôi muốn việc khám phá dịch vụ, định tuyến, xuống cấp bộ ngắt mạch và cân bằng tải của lưới được thực thi trong Envoy trên mặt phẳng dữ liệu. Envoy cũng cung cấp cơ chế Lọc để thực hiện các chức năng này, thường theo các cách sau:

  • Biên dịch lại Envoy với bộ lọc tùy chỉnh trong mã C++
  • Mở rộng bộ lọc bằng tập lệnh Lua
  • Mở rộng Envoy bằng wasm

1. Nguyên lý làm việc của wasm

Loại biên dịch C++ đầu tiên quá đắt để học và khó bảo trì. Loại thứ hai phù hợp để triển khai các hàm đơn giản. Loại thứ ba là hướng phát triển chính Viết các bộ lọc bằng các ngôn ngữ khác, biên dịch và chạy chúng thông qua wasm và nhúng chúng. trong Envoy để chạy. Thực hiện lệnh nhị phân được chuyển với các tính năng sau:

Được tải động vào Envoy để thực thi.

  • Mã đặc phái viên dễ bảo trì mà không cần sửa đổi
  • Hỗ trợ nhiều ngôn ngữ phát triển hơn như tinygo
  • Cách ly cấp quy trình ảnh hưởng đến quy trình Envoy trong hoạt động hộp cát VM
  • Sơ đồ lưu lượng đi qua Envoy:

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

2. quá trình cài đặt wasm

Cài đặt Isito1.9.9.

Phiên bản mới nhất là v0.0.33 và Istio được hỗ trợ là 1.9.X.

  1. https://github.com/solo-io/wasm/releases/

Gỡ cài đặt phiên bản istio1.10 gốc và cài đặt 1.9.9.

  1. istioctl x gỡ cài đặt -- thanh lọc

Đường dẫn cài đặt của istio1.9.9 các bạn vui lòng xem bài viết trước để biết quá trình cài đặt cụ thể.

  1. https://github.com/istio/istio/releases/download/1.9.9/istio-1.9.9-linux-amd64.tar.gz

Tuyên bố mount wasme

Có các khuyến nghị cài đặt chi tiết bên dưới. Nên sử dụng cách gắn khai báo trong môi trường sản xuất:

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/wasme_operator/

1. Cài đặt CRD Wasme.

  1. kubectl áp dụng -f https://github.com/solo-io/wasm/releases/latest/download/wasme.io_v1_crds.yaml
  2. # kubectl áp dụng -f wasme.io_v1_crds.yaml
  3. customresourcedefinition.apiextensions.k8s.io/filterdeployments.wasme.io đã tạo

2. Cài đặt các thành phần Toán tử.

  1. kubectl áp dụng -f https://github.com/solo-io/wasm/releases/latest/download/wasme-mặc định.yaml
  2. # kubectl áp dụng -f wasme-mặc định.yaml
  3. không gian tên/wasme đã được tạo
  4. serviceaccount/wasme-operator đã được tạo
  5. serviceaccount/wasme-cache đã được tạo
  6. configmap/wasme-cache đã được tạo
  7. clusterrole.rbac.sự cho phép.k8s.io/wasme-operator đã được tạo
  8. clusterrole.rbac.sự cho phép.k8s.io/wasme-cache đã được tạo
  9. clusterrolebinding.rbac.sự cho phép.k8s.io/wasme-operator đã được tạo
  10. clusterrolebinding.rbac.sự cho phép.k8s.io/wasme-cache đã được tạo
  11. daemonset.apps/wasme-cache đã được tạo
  12. đã tạo implementation.apps/wasme-operator

3. Xác minh xem cài đặt có thành công hay không.

  1. # kubectl lấy pod -n wasme
  2. TÊN TRẠNG THÁI SẴN SÀNG KHỞI ĐỘNG LẠI TUỔI
  3. wasme-cache-96mnm 1/1 Đang chạy 0 23 giây
  4. wasme-cache-ktnpb 1/1 Đang chạy 0 23 giây
  5. wasme-cache-w929m 1/1 Đang chạy 0 23 giây
  6. wasme-operator-75bbf94974-nb684 1/1 Đang chạy 0 23 giây

Cách lắp hoạt động

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

Cài đặt dòng lệnh

Tài liệu cài đặt chính thức.

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/getting_started/

Nếu mạng tốt thì có thể sử dụng lệnh cài đặt nhanh.

  1. curl -sL https://run.solo.io/wasme/install | sh

Xem những gì được thực hiện từ tập lệnh cài đặt install_cli.sh.

  1. nếu như [ "$(uname -s)" = "Darwin" ]; sau đó OS=darwin // Mac là darwinelse OS=linuxfi// Đổi tên và cấp quyền thực thi cd "$TRANG CHỦ"mkdir -p ".wasme/thùng"mv "${tmp}/${tên tệp}" ".wasme/bin/wasme"chmod +x ".wasme/bin/wasme"// Thêm vào biến môi trường import PATH=\$HOME/.wasme/bin:\$PATH"

Mac có thể tải xuống wasme-darwin-amd64 và chỉ cần cài đặt nó.

  1. xuất PATH=$PATH:/Người dùng/yongliang/công việc/software_install/wasme/binsource ~/.bash_profilechmod +x /Users/yongliang/công việc/phần_phẩm_cài_đặt/wasme/bin/wasmewasme --versionwasme phiên bản 0.0.33

3. Wasm tạo Bộ lọc

Để biết hướng dẫn chính thức, xem:

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/build_tutorials/building_assemblyscript_filters/

Đầu tiên hãy thử tinygo làm ví dụ để xem hiệu quả.

  1. wasme init melon-filterSử dụng các phím mũi tên ĐẾN điều hướng: ↓ ↑ → ← ? Bạn muốn ngôn ngữ nào ĐẾN sử dụng bộ lọc: cpp rust assemblyscript ▸ tinygo

Sau khi thực hiện:

  1. wasme init melon-filter✔ tinygo✔ istio:1.7.x, gloo:1.6.x, istio:1.8.x, istio:1.9.x

Cấu trúc thư mục.

  1. -rw-r--r-- 1 nhân viên yongliang 83 11 15 19:26 go.mod-rw-r--r-- 1 nhân viên yongliang 676 11 15 19:26 go.sum-rw-r--r-- 1 nhân viên yongliang 1707 11 15 19:26 main.go-rw-r--r-- 1 nhân viên yongliang 162 11 15 19:26 runtime-config.json

run-config.json được wamse sử dụng để xây dựng các bộ lọc và phải chứa trường rootIds.

  1. { "kiểu": "proxy_sứ_viên", "abiPhiên bản": ["v0-4689a30309abf31aee9ae36e73d34b1bb182685f", "v0.2.1"], "cấu hình": { "rootId": [ "root_id" ] }}

main.go là mã mẫu được tạo, chủ yếu thêm thông tin vào tiêu đề của phản hồi được trả về và thay đổi thành ""xin chào", "dưa"".

  1. func (ctx *httpHeaders) OnHttpResponseHeaders(numHeaders số nguyên, endOfStream bool) các loại.Hoạt động { nếu lỗi := proxywasm.SetHttpResponseHeader("Xin chào", "dưa gang"); lỗi != không { proxywasm.LogCriticalf("không thể thiết lập tiêu đề phản hồi: %v", lỗi) } trở lại các loại.Hành độngTiếp tục}

4. Bộ lọc xây dựng wasm

Cấu trúc bộ lọc

Quá trình thi công diễn ra khá lâu nên các bạn vui lòng đợi một lát nhé.

  1. wasme build tinygo /Users/yongliang/GoLandProjects/melon-filter -t xxx/base/melon-thêm vào-header:v0.1Không thể ĐẾN tìm hình ảnh 'quay.io/solo-io/ee-builder:0.0.33' locals0.0.33: Đang kéo từ solo-io/ee-builderdf27e1f7c31e: Hoàn tất kéo 0a8813a60e2e: Hoàn tất kéo 3c2cba919283: Hoàn tất kéo 26f4837a47c0: Hoàn tất kéo dd7b292cf068: Hoàn tất kéo 4a4d78f042bc: Hoàn tất kéo 9108a736d6a0: Hoàn tất kéo 70ac09daaa76: Hoàn tất kéo 809bdff17a4d: Hoàn tất kéo 31fc029d676e: Hoàn tất kéo 85533903f7c2: Hoàn tất kéo f87e543b124a: Hoàn tất kéo 93d78f561264: Hoàn tất kéo 8ba3d0f61e41: Hoàn tất kéo d511201136be: Hoàn tất kéo Tóm tắt: sha256:94b6ce4624b0c4ed4cfa4f311c8af57083b538949b5c88ce62ef984f9b81ef66Trạng thái: Đã tải xuống hình ảnh mới hơn quay.io/solo-io/ee-builder:0.0.33Building với tinygo...go: tải xuống github.com/tetratelabs/proxy-wasm-go-sdk v0.1.1INFO[2146] thêm hình ảnh ĐẾN bộ nhớ đệm... tệp bộ lọc=/tmp/wasme066130090/filter.wasm tag="xxx/base/melon-add-header:v0.1"INFO[2146] hình ảnh được gắn thẻ tóm tắt="sha256:750d63889653e7117fcbc0831f10f0e1d3f7ec0c82fe5787b71d08a783e3393f" hình ảnh="xxx/base/melon-add-header:v0.1"

Quá trình xây dựng đã hoàn tất và hình ảnh được tạo ra.

  1. danh sách wasmeTAG TÊN KÍCH CỠ SHA CẬP NHẬTxxxx/cơ sở/dưa-thêm vào-header v0.1 247.6 kB 750d6388 15 tháng 11 năm 21 20:23 CST

Lưu ý: Xem hướng dẫn xây dựng chính thức.

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/build_tutorials/building_assemblyscript_filters/

Đẩy hình ảnh

Image đã xây dựng cần được đẩy đến kho từ xa.

  1. wasme đẩy xxx/cơ sở/dưa hấu-thêm vào-header:v0.1INFO[0000] Đang đẩy hình ảnh xxxn/base/melon-thêm vào-header:v0.1 INFO[0004] Đã đẩy xxx/base/melon-thêm vào-header:v0.1 INFO[0004] Tóm tắt: sha256:27aecb092318b2f922204ce722a34e5c2866baa168cf2f9f00c303b1982cfa9a

Lưu ý: Xem hướng dẫn đẩy chính thức.

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/push_tutorials/basic_push/

5. Lọc triển khai hiệu quả

Nó được triển khai thông qua các tài nguyên tùy chỉnh và FilterDeployment của Kubernetes. Sau đây là nội dung của melon-add-header.yaml.

  1. apiVersion: wasme.io/v1kind: FilterDeploymentmetadata: tên: dưa gang-thêm vào-header namespace: defaultspec: triển khai: istio: kind: Bộ lọc triển khai: hình ảnh: xxx/base/melon-thêm vào-tiêu đề:v0.1

Thực hiện lệnh triển khai.

  1. kubectl áp dụng -f melon-thêm vào-header.yamlfilterdeployment.wasme.io/melon-thêm vào-tiêu đề đã được tạo

Lưu ý: Xem hướng dẫn chính thức.

  1. https://docs.solo.io/web-assembly-hub/latest/tutorial_code/wasme_operator/

6. Xác minh xác thực

1. Truy cập dịch vụ lưới Mesh.

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

2. Kiểm tra xem "hello:melon" đã được thêm vào Tiêu đề phản hồi chưa.

Hãy nói về lời giải thích chi tiết về việc sử dụng Envoy tiện ích mở rộng Wasm

Liên kết gốc: https://mp.weixin.qq.com/s/jeCyu9spkmtt1_cP7dAfw.

Cuối cùng, bài viết giải thích chi tiết về việc sử dụng tiện ích mở rộng Wasm Envoy có ở đây. Nếu bạn muốn biết thêm về giải thích chi tiết về việc sử dụng tiện ích mở rộng Wasm Envoy, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. bạn sẽ hỗ trợ nó trong tương lai blog của tôi! .

30 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress