公眾號:黑客下午茶
授權策略
Linkerd
的新伺服器授權策略(server authorization policy)
功能使您可以細粒度控制允許哪些服務相互通訊。這些策略直接建立在 Linkerd
的自動 mTLS
功能提供的安全服務身份上。與 Linkerd
的設計原則保持一致,授權策略以可組合的 Kubernetes
原生方式表達,這種方式只需最少的配置,就可表達廣泛的行為。
為此,Linkerd 2.11
引入了一組預設授權策略,只需設定 Kubernetes annotation
即可應用於 cluster
、namespace
或 pod
級別,包括:
all-authenticated
(只允許來自mTLS-validated
服務的請求);all-unauthenticated
(允許所有請求)deny
(拒絕所有請求)- … 和更多。
Linkerd 2.11
還引入了兩個新的 CRD Server
和 ServerAuthorization
,它們一起允許在任意一組 pod
中應用細粒度的策略。例如,Server
可以選擇 namespace
中所有 pod
上的所有管理埠(admin ports
),ServerAuthorization
可以允許來自 kubelet
的健康檢查連線,或用於指標收集(metrics collection
)的 mTLS
連線。
這些 annotation
和 CRD
一起使您可以輕鬆地為叢集指定各種策略,從 “允許所有流量”
到 “服務 Foo 上的埠 8080 只能從使用 Bar 服務帳戶的服務接收 mTLS 流量”
,更多。(請參閱完整的策略文件 »)
重試帶有正文的 HTTP 請求
重試失敗的請求是 Linkerd
提高 Kubernetes
應用程式可靠效能力的關鍵部分。到目前為止,出於效能原因,Linkerd
只允許重試無正文請求,例如 HTTP GET
。在 2.11
中,Linkerd
還可以重試帶有 body
的失敗請求,包括 gRPC
請求,最大 body
大小為 64KB
。
容器啟動排序解決方法
Linkerd 2.11
現在預設確保 linkerd2-proxy
容器在 pod
中的任何其他容器初始化之前準備就緒。這是 Kubernetes
對容器啟動順序缺乏控制的一種解決方法,並解決了一大類棘手的競爭條件,即應用程式容器在代理準備就緒之前嘗試連線。
更小、更快、更輕
像往常一樣,Linkerd 2.11
繼續讓 Linkerd
成為 Kubernetes
最輕、最快的服務網格。2.11
中的相關變化包括:
- 控制平面(
control plane
)減少到只有3
個部署。 - 由於高度活躍的
Rust
網路生態系統,Linkerd
的資料平面(data plane
)“微代理(micro-proxy)”
更小、更快。 SMI
功能大部分已從核心控制平面中刪除,並移至擴充套件中。Linkerd
映象現在使用最小的“distroless”
基礎映象。
還有更多!
Linkerd 2.11
還包含大量其他改進、效能增強和錯誤修復,包括:
Kubernetes
資源的新CLI tab completion(命令自動完成)
。- 現在可以在
Namespace
資源上設定所有config.linkerd.io annotations
,它們將作為在該名稱空間中建立的pod
的預設值。 - 一個
linkerd check -o short
帶有簡短輸出的新命令。 Dashboard
中的新 擴充套件(Extensions
) 頁面- 代理的模糊測試(
Fuzz testing
)! - 代理現在設定資訊性的
l5d-client-id
和l5d-proxy-error
header。 - 對
Helm
可配置性和linkerd check
進行了大量改進。 - 使用
linkerd-multicluster
對StatefulSets
的實驗支援 - 還有更多!
有關詳細資訊,請參閱完整的發行版說明
公眾號:黑客下午茶