Service Mesh (ASM), kind değeri IstioGateway ve apiVersion değeri istio.alibabacloud.com/v1beta1 olan bir CustomResourceDefinition (CRD) API kaynağı sağlar. ASM ayrıca bu CRD'deki değişiklikleri izleyen ve çalıştığı Kubernetes kümesinin Service, Deployment ve ServiceAccount kaynaklarını güncelleyen bir denetleyici sunar.
Yapılandırma örnekleri
Ön koşullar
Bir Container Service for Kubernetes (ACK) kümesi ASM örneğinize eklenmiştir. Daha fazla bilgi için bkz. ASM örneğine küme ekleme.
ASM ağ geçitleri istio-system ad alanında dağıtılmalıdır. Ağ geçidi, başlangıçta yapılandırmalarını bu şekilde okuyabilir. Istio 1.6 ve sonraki sürümlerde, başka bir ad alanında dağıtılan ASM ağ geçidi yapılandırmalarını okuyamadığı için başlatılamaz.
Örnek 1: Kubernetes API kullanarak giriş ağ geçidi oluşturma ve yönetme
ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Ingress Gateway sayfasında Create from YAML seçeneğini tıklayın.
-
Create sayfasında Name alanına giriş ağ geçidi için bir ad girin, istio-system değerini Namespace açılır listesinden seçin, YAML dosyasındaki aşağıdaki alanları yapılandırın ve ardından Create seçeneğini tıklayın.
CRD alanları hakkında daha fazla bilgi için bkz. CRD alanları.
NotGiriş ağ geçidini yönetmek için Kubernetes Go Client kullanmanız gerekiyorsa bkz. ASM ağ geçidi için Go struct'ları.
-
Giriş ağ geçidinin hizmet bilgilerini görüntüleyin:
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneklerini tıklayın.
Services sayfasının üst kısmında istio-system değerini Namespace açılır listesinden seçin.
Hizmet listesinde, istediğiniz giriş ağ geçidinin hizmetinin adını tıklayarak bilgilerini görüntüleyin.
-
Giriş ağ geçidinin pod bilgilerini görüntüleyin.
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneklerini tıklayın.
Pods sayfasının üst kısmında istio-system değerini Namespace açılır listesinden seçin.
Pod listesinde giriş ağ geçidine ait bir pod bulun ve pod bilgilerini görüntülemek için pod adına tıklayın.
Örnek 2: Kubernetes API kullanarak çıkış ağ geçidi oluşturma ve yönetme
ASM, mesh içindeki tüm giden trafiği yönlendirmek üzere çıkış ağ geçidi hizmeti sağlar.
ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Egress Gateway sayfasında Create from YAML seçeneğini tıklayın.
-
Create sayfasında çıkış ağ geçidi için bir ad girin, Name alanına adı yazın, istio-system değerini Namespace açılır listesinden seçin, YAML dosyasındaki aşağıdaki alanları yapılandırın ve ardından Create seçeneğini tıklayın.
CRD alanları hakkında daha fazla bilgi için bkz. CRD alanları.
-
Çıkış ağ geçidinin hizmet bilgilerini görüntüleyin:
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneklerini tıklayın.
Services sayfasının üst kısmında istio-system değerini Namespace açılır listesinden seçin.
Hizmet listesinde, istediğiniz çıkış ağ geçidinin hizmetinin adını tıklayarak bilgilerini görüntüleyin.
-
Çıkış ağ geçidinin pod bilgilerini görüntüleyin.
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneklerini tıklayın.
Pods sayfasının üst kısmında istio-system değerini Namespace açılır listesinden seçin.
Pod listesinde çıkış ağ geçidine ait bir pod bulun ve pod bilgilerini görüntülemek için pod adına tıklayın.
CRD alanları
|
Alan |
Açıklama |
Varsayılan değer |
|
metadata.name |
ASM ağ geçidinin adı. Oluşturulan Kubernetes Service ve Deployment kaynaklarının her ikisi de istio-{metadata.name alanının değeri} olarak adlandırılır. |
Yok |
|
metadata.namespace |
ASM ağ geçidinin dağıtıldığı ad alanı. Oluşturulan Kubernetes Service ve Deployment kaynakları bu ad alanında yer alır. Önemli
Oluşturulan Kubernetes hizmetinin ve dağıtımının Istio 1.6 ve sonraki sürümlerde kullanılabilir olmasını sağlamak için ad alanı istio-system olmalıdır. |
istio-system |
|
clusterIds |
ASM ağ geçidini dağıtmak istediğiniz kümelerin kimlikleri. Değer bir dizidir. Kümeler geçerli ASM örneğinde yönetiliyor olmalıdır. |
Yok |
|
env |
ASM ağ geçidi podunun ortam değişkenleri. Değer bir dizidir. |
Yok |
|
externalTrafficPolicy |
Ağ geçidinin harici trafiği düğüm düzeyindeki uç noktalara mı yoksa küme genelindeki uç noktalara mı yönlendireceğini belirtir. Geçerli değerler: Cluster veya Local. Not
Bu alan yalnızca giriş ağ geçitleri için kullanılabilir. |
Cluster |
|
ports |
ASM ağ geçidi podu için tanımlanan bağlantı noktaları ve protokoller. Değer bir dizidir. Örneğin,
Not
1.9.7.107'den önceki sürümlerde protocol alanı TCP olarak ayarlanmalıdır. |
Yok |
|
gatewayType |
ASM ağ geçidinin türü. Geçerli değerler: ingress ve egress.
|
ingress |
|
replicaCount |
Pod çoğaltma sayısı. |
1 |
|
configVolumes |
ASM ağ geçidi poduna bağlanan ConfigMap biriminin bilgileri. Örnek:
|
Yok |
|
resources |
ASM ağ geçidi podunun kaynak yapılandırmaları. |
|
|
secretVolumes |
ASM ağ geçidi poduna bağlanan gizli dizi biriminin bilgileri. Örnek:
|
Yok |
|
serviceType |
ASM ağ geçidinin hizmet türü. Geçerli değerler: LoadBalancer, NodePort ve ClusterIP. Çıkış ağ geçitleri için bu alanın değeri genellikle ClusterIP olarak ayarlanır. Önemli
Veri düzleminde kayıtlı bir küme kullanıyorsanız ve bu alan LoadBalancer olarak ayarlanmışsa, kümenin LoadBalancer Hizmetlerini desteklediğinden emin olun. Aksi takdirde ASM ağ geçitleri oluşturulamayabilir. |
LoadBalancer |
|
loadBalancerClass |
ASM ağ geçidinin loadBalancerClass değeri. Bu alan yalnızca serviceType parametresi LoadBalancer olarak ayarlandığında geçerlidir. Bu alan, v1.18 veya sonraki sürümlerdeki ASM örnekleri tarafından desteklenir. Daha fazla bilgi için bkz. NLB örneğini giriş ağ geçidi ile ilişkilendirme. |
Yok |
|
serviceAnnotations |
ASM ağ geçidinin açıklamaları. Örnek: Not
Bu alan yalnızca serviceType değeri LoadBalancer olan ağ geçitleri için kullanılabilir. Çıkış ağ geçitleri için bu alan genellikle yapılandırılmaz. |
Yok |
|
serviceLabels |
ASM ağ geçidinin etiketleri. |
Yok |
|
podLabels |
ASM ağ geçidi podunun etiketleri. |
Yok |
|
podAnnotations |
ASM ağ geçidi podunun açıklamaları. |
Yok |
|
rollingMaxSurge |
Yuvarlanma güncellemesi sırasında beklenen çoğaltma sayısının üzerine planlanan maksimum pod sayısı. Değer mutlak bir değer veya yüzde olabilir. |
"100%" |
|
rollingMaxUnavailable |
Yuvarlanma güncellemesi sırasında kullanılamaz durumda olabilecek maksimum pod sayısı. Değer mutlak bir değer veya yüzde olabilir. |
"25%" |
|
overrides |
Belirli kümeler için farklı ayarlar yapılandırır. Bu alan, clusterIds alanında iki veya daha fazla küme belirtildiğinde kullanılabilir. Değer, anahtar-değer çiftleri içeren MAP türündedir. Not
|
Yok |
|
kernel.enabled |
Özel çekirdek alanlarının etkinleştirilip etkinleştirilmeyeceğini belirtir. |
false |
|
kernel.parameters |
Çekirdek alanları. Aşağıdaki çekirdek alanları desteklenir:
Not
ASM tarafından desteklenen belirli çekirdek alanları, ana bilgisayarın çekirdek sürümü nedeniyle geçersiz hale gelebilir. Bu durum oluşursa ASM ağ geçidi podu hata bildirebilir. ASM ağ geçidi podu tarafından bildirilen hataları görüntülemek için Tüm çekirdek alanlarının değerleri dize biçiminde olmalıdır. YAML, sayıları sayısal değerler olarak tanır. Bu nedenle, her bir değeri çift tırnak işaretleri ("") içine almalısınız. Örnek: net.core.somaxconn: "65535". |
Yok |
|
compression.enabled |
Giriş ağ geçidi için sıkıştırma özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Not
compression ile ilgili alanlar yalnızca giriş ağ geçitleri için kullanılabilir. |
false |
|
compression.content_type |
Content-Type üstbilgisiyle belirtilen, sıkıştırılacak veri türleri. Örnekler:
|
Yok |
|
compression.disable_on_etag_header |
|
false |
|
compression.min_content_length |
Sıkıştırmanın tetiklendiği eşik. Alan değeri Content-Length üstbilgisinin boyutunu gösterir. |
30 |
|
compression.remove_accept_encoding_header |
|
false |
|
compression.gzip |
Sıkıştırma biçimi. Yalnızca GZIP biçimi desteklenir. Sıkıştırma özelliğini etkinleştirmek istiyorsanız bu alan gereklidir. Diğer tüm alanlar için varsayılan değerler kullanılıyorsa bu alanı boş bırakmalısınız. Örnek: |
Yok |
|
compression.gzip.memory_level |
zlib kitaplığının bellek kullanım düzeyi. Geçerli değerler: 1 ila 9. Bu alanın daha büyük bir değeri, daha yüksek bellek kullanımı ancak daha yüksek sıkıştırma hızı ve daha iyi sıkıştırma kalitesi sağlar. |
5 |
|
compression.gzip.compression_level |
zlib kitaplığı tarafından kullanılan sıkıştırma düzeyi. Geçerli değerler:
Not
BEST_COMPRESSION en yüksek sıkıştırma kalitesini gösterir. BEST_SPEED en yüksek sıkıştırma hızını gösterir. Aşağıdaki listede bazı sıkıştırma düzeyleri açıklanmaktadır:
|
DEFAULT_COMPRESSION |
|
compression.gzip.compression_strategy |
zlib kitaplığı tarafından kullanılan sıkıştırma politikası. Geçerli değerler:
Not
DEFAULT_STRATEGY Bu sıkıştırma politikası, altta yatan varsayılan davranışı kullanan ve çoğu durumda tatmin edici sıkıştırma sonuçları üretebilen varsayılan sıkıştırma politikasıdır. FILTERED Bu sıkıştırma politikası, yinelenen verilerin bulunduğu çoğu senaryo için uygun olan filtreleme sıkıştırma algoritmasını tercih eder. Bu sıkıştırma politikası, metin verileri ve yapay olarak oluşturulan veriler için daha yüksek bir sıkıştırma oranı elde etmeye yardımcı olabilir. HUFFMAN_ONLY Bu sıkıştırma politikası, sıkıştırma için yalnızca Huffman kodlamasını kullanır. Başka algoritmalar kullanılmaz. Bu sıkıştırma politikası genellikle statik verileri sıkıştırmak için kullanılır. Böyle sıkıştırılmış veriler daha hızlı bir şekilde açılabilir. RLE Run Length Encoding (RLE) algoritması, bitmap verileri gibi tekrarlayan veri dizilerini sıkıştırmada son derece etkilidir. FIXED Bu sıkıştırma politikası, belirli verilere göre dinamik olarak oluşturulan kodlama ağaçları yerine önceden tanımlanmış kodlama ağacını kullanarak Huffman kodlaması gerçekleştirir. Bu, yüksek hızlı sıkıştırma ve açma sağlar. Ancak sıkıştırma oranı düşüktür. |
DEFAULT_STRATEGY |
|
compression.gzip.window_bits |
zlib kitaplığının pencere boyutu. Geçerli değerler: 9 ila 15. |
12 |
|
compression.gzip.chunk_size |
zlib kitaplığının çıkış arabelleği boyutu. |
4096 |
|
hostNetwork |
ASM ağ geçidi podunun ana bilgisayarın ağ ad alanına erişmesine izin verilip verilmeyeceğini belirtir. Geçerli değerler:
|
false |
|
dnsPolicy |
ASM ağ geçidi podu için yapılandırılan Alan Adı Sistemi (DNS) politikası. DNS politikaları hakkında daha fazla bilgi için bkz. Hizmetler ve Pod'lar için DNS. |
ClusterFirst |
|
cpu.targetAverageUtilization |
HPA etkinleştirildiğinde beklenen CPU kullanımı. Geçerli değerler: 1 ila 100. Bellek kullanımı bu değeri aşarsa pod çoğaltma sayısı artar. Bellek kullanımı bu değerden azsa pod çoğaltma sayısı azalır. |
Yok |
|
memory.targetAverageUtilization |
HPA etkinleştirildiğinde beklenen bellek kullanımı. Geçerli değerler: 1 ila 100. Bellek kullanımı bu değeri aşarsa pod çoğaltma sayısı artar. Bellek kullanımı bu değerden azsa pod çoğaltma sayısı azalır. |
Yok |
|
maxReplicas |
ASM ağ geçidi için HPA özelliği tarafından ölçeklenebilecek maksimum pod çoğaltma sayısı. Bu alanın değeri pozitif bir tamsayı olmalıdır. |
Yok |
|
minReplicas |
ASM ağ geçidi için HPA özelliği tarafından ölçeklenebilecek minimum pod çoğaltma sayısı. Değer pozitif bir tamsayıdır. Minimum değer 1'dir. |
Yok |
|
nodeSelector |
ASM ağ geçidi podunun bulunduğu düğümün etiketini belirtir. Anahtarı ve değeri özelleştirebilirsiniz. Örnek:
|
Yok |
|
affinity |
ASM ağ geçidi podunu bir düğüme zamanlamak için düğüm yakınlığını yapılandırır. Daha fazla bilgi için bkz. Yakınlık ve anti-yakınlık. |
Yok |
|
tolerations |
ASM ağ geçidi podunun düğüm lekelerine tolerans göstermesini sağlamak için toleransları yapılandırır. Daha fazla bilgi için bkz. Lekeler ve Toleranslar. |
Yok |
Değişiklikleri ASM ağ geçidinin yuvarlanma yeniden başlatılmasına neden olacak alanlar
Aşağıdaki alanlarda yapılan değişiklikler ASM ağ geçidinin yuvarlanma yeniden başlatılmasına neden olur. Bu alanları değiştirirken dikkatli olun.
env
ports (ASM örneğinin sürümü 1.16'dan önceyse, bu alanda yapılan değişiklik ASM ağ geçidinin yuvarlanma şeklinde yeniden başlatılmasına neden olur. ASM örneğinin sürümü 1.16 veya sonrası ise, bu alanda yapılan değişiklik ASM ağ geçidinin yuvarlanma şeklinde yeniden başlatılmasına neden olmaz.)
configVolumes
resources
secretVolumes
podLabels
podAnnotations
kernel.enabled
kernel.parameters
hostNetwork
dnsPolicy
nodeSelector (zamanlamaya tabi)
affinity (zamanlamaya tabi)
tolerations (zamanlamaya tabi)