Service Mesh (ASM), yeniden kullanılabilir ve sürüm farkındalığına sahip Envoy filtre yapılandırmaları oluşturmak için iki Özel Kaynak Tanımı (CRD) sunar: EnvoyFilterTemplate ve EnvoyFilterTemplateBinding. Bir filtre şablonunu bir kez tanımlayın, ardından YAML dosyalarını çoğaltmadan bunu iş yüklerine, ad alanlarına ve Istio sürümlerine bağlayın.
Neden ham EnvoyFilter kaynakları yerine bu CRD'leri kullanmalısınız?
Sürüm güvenliği. Manuel olarak yönetilen EnvoyFilter kaynakları, Envoy proxy sürümü değiştiği için bir ASM örneği yükseltmesinden sonra uyumsuz hale gelebilir. EnvoyFilterTemplate, sürüme özel filtre yapılandırmaları tanımlamanıza olanak tanır; böylece yükseltmeden sonra doğru filtre otomatik olarak uygulanır.
Yeniden kullanılabilirlik. Tek bir şablon, ayrı bağlamalar aracılığıyla iş yükleri ve ad alanları arasında birden çok EnvoyFilter kaynağı üretir.
Daha az çoğaltma. Meta veriler ve iş yükü seçiciler bağlamadan otomatik olarak doldurulur. Bunları şablonda çoğaltmanız gerekmez.
Tek bir EnvoyFilterTemplate içinde tanımlanan istioVersion aralıkları örtüşmemelidir.
Nasıl çalışır
Her biri belirli bir Istio sürüm aralığını hedefleyen bir veya daha fazla filtre yapılandırması içeren bir EnvoyFilterTemplate oluşturun.
Şablonu referans alan ve filtrenin hangi iş yüklerine ve Envoy proxy sürümlerine uygulanacağını belirten bir EnvoyFilterTemplateBinding oluşturun.
ASM, doğru meta veriler, etiketler ve iş yükü seçicileri ile ilgili EnvoyFilter kaynaklarını otomatik olarak oluşturur.
Yapılandırma örneği
Aşağıdaki örnek, Istio 1,19 ve sonraki sürümleri çalıştıran ASM örnekleri için 80 numaralı bağlantı noktasında HTTP/2 bağlantı ve akış pencere boyutlarını ayarlayan bir EnvoyFilterTemplate tanımlar. İlgili bir EnvoyFilterTemplateBinding daha sonra, istio-system ad alanında genel olarak uygulanan ve 1,20 sürümündeki proxy'leri hedefleyen bir Envoy filtresi oluşturur.
EnvoyFilterTemplate
EnvoyFilterTemplateBinding
apiVersion: istio.alibabacloud.com/v1
kind: EnvoyFilterTemplateBinding
metadata:
name: seth2windows-binding-1.20
namespace: istio-system
spec:
templateRef:
istioVersion: "1.20"
name: seth2windows
workloads:
- kind: Namespace
namespace: istio-system
EnvoyFilterTemplate alanları
EnvoyFilterTemplate, farklı Istio sürümleri için Envoy filtre yapılandırmalarını tanımlar. Bir ASM örneği yükseltildikten sonra, eşleşen filtre yapılandırması yükseltilen Envoy proxy'lerine otomatik olarak uygulanır; bu da manuel olarak yönetilen EnvoyFilter kaynaklarına kıyasla uyumluluk risklerini azaltır.
EnvoyFilterTemplateSpec
|
|
|
|
|
|
|
|
|
TemplateValue
Her TemplateValue, bir Envoy filtre yapılandırmasını (YAML formatında) uygulandığı Istio sürüm aralığıyla eşleştirir.
Alan | Tür | Gerekli | Açıklama |
| string | Evet | Bu filtrenin hedeflediği Istio sürümü veya sürüm aralığı. 1,19 veya 1,20 gibi bir Istio küçük sürümü belirtin. Bir aralık tanımlamak için iki sürümü tire ile ayırın. En eski bilinen sürüm için MIN_VERSION ve en yeni sürüm için MAX_VERSION kullanın. Bkz. Sürüm aralığı sözdizimi. |
| string | Evet | YAML formatındaki Envoy filtre yapılandırması. EnvoyFilter CRD spesifikasyonuna uygun olmalıdır. metadata ve workloadSelector alanlarını atlayın; ASM bunları oluşturma sırasında EnvoyFilterTemplateBinding'den otomatik olarak doldurur. |
Sürüm aralığı sözdizimi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EnvoyFilterTemplateBinding alanları
Bir EnvoyFilterTemplateBinding, bir EnvoyFilterTemplate ile ilişkilendirilir ve ASM'nin EnvoyFilter kaynaklarını oluşturacağı iş yüklerini ve Envoy proxy sürümlerini belirtir.
EnvoyFilterTemplateBindingSpec
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EnvoyFilterTemplateRef
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WorkloadRef
Oluşturulan Envoy filtresinin uygulanacağı iş yüklerini tanımlar.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Başvurular
Envoy filtre şablonu kullanarak Envoy filtresi oluşturma: Envoy filtre şablonlarını oluşturma ve yönetme için adım adım işlemler.
ASM yeteneklerini genişletmek için eklentileri etkinleştirme: ASM eklenti pazar yerinden eklentileri seçin ve özelleştirin.