ASM, ek açıklamalar kullanarak Sidecar proxy kaynaklarını ve yapılandırmasını değiştirmeyi destekler. Bu konuda, kaynak ek açıklamaları ekleyerek ve ProxyConfig alanını kullanarak Sidecar Proxy'nin nasıl yapılandırılacağı açıklanmaktadır.
Ön Koşullar
Bir giriş ağ geçidi dağıtıldı. Daha fazla bilgi için bkz. Giriş ağ geçidi oluşturma.
Kaynak Ek Açıklamaları Ekleme
ASM, bir pod'a ek açıklamalar ekleyerek Sidecar proxy kaynaklarının değiştirilmesini destekler. Bu örnekte, Sidecar proxy bellek isteğinin nasıl değiştirileceği gösterilmektedir. Diğer ek açıklamalar hakkında daha fazla bilgi için bkz. Ek A: Istio kaynak ek açıklamaları.
Varsayılan ad alanı için otomatik Sidecar mesh proxy enjeksiyonunu etkinleştirin. Daha fazla bilgi için bkz. Otomatik enjeksiyonu etkinleştirme.
Varsayılan ad alanında bir uygulama dağıtın. Daha fazla bilgi için bkz. ASM örneğiyle ilişkilendirilmiş bir kümede uygulama dağıtma.
-
Sidecar proxy için minimum bellek isteğini değiştirin.
ClustersACK konsolu oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
On the Clusters page, click the name of your cluster. In the left navigation pane, click .
On the Deployments page, find your target application and click in the Actions column.
-
In the Edit YAML dialog box, add the following content under the
templateparameter, then click Update.annotations: sidecar.istio.io/proxyMemory: 14Mitemplate: metadata: annotations: sidecar.istio.io/proxyMemory: 14Mi labels: app: details version: v1
-
Sidecar proxy bellek değişikliğinin başarılı olduğunu doğrulayın.
Küme yönetimi sayfasının sol gezinme bölmesinde yolunu izleyin.
On the Pods page, find your target application pod and click Details in the Actions column.
-
On the Containers tab, click istio-proxy.
istio-proxy'nin 14 Mi bellek istediğini görebilirsiniz. Tıkladıktan sonra kayıt defteri adresi, görüntü çekme ilkesi (IfNotPresent) ve Istio Sidecar ile ilgili ortam değişkenleri dahil olmak üzere istio-proxy konteynerinin ayrıntılarını görüntüleyebilirsiniz. Requested Resources altında geçerli bellek ayarının
Memory: 14Miolarak göründüğünü fark edeceksiniz.
ProxyConfig Alanını Ayarlama
ASM, bir pod'daki ProxyConfig alanını değiştirerek Sidecar proxy yapılandırmasını tanımlamayı destekler. ProxyConfig alanının kullanımı hakkında daha fazla bilgi için bkz. Ek B: ProxyConfig alanları.
proxy.istio.io/config değerleri YAML veya JSON formatında olabilir.
ProxyConfig alanını ayarlama yordamı, kaynak ek açıklamaları ekleme işlemiyle aynıdır. Bu bölümde yaygın ProxyConfig alanı örnekleri sunulmaktadır. Adımlar için önceki bölüme bakın.
Örnek 1: Sonlandırma boşaltma süresini ayarlama
terminationDrainDuration alanını kullanarak sonlandırma boşaltma süresini değiştirin. Bu süre, bir uygulama konteyneri sonlandıktan sonra Istio Proxy'nin bekleyeceği maksimum süreyi tanımlar.
Istio Proxy'nin uygulama konteyneri sonlandıktan sonra en fazla 3 saniye beklemesini sağlamak için uygulama YAML dosyanıza aşağıdaki içeriği ekleyin.
annotations:
proxy.istio.io/config: |
terminationDrainDuration: 3s
type: RollingUpdate
template:
metadata:
annotations:
proxy.istio.io/config: |
terminationDrainDuration: 3s
labels:
app: details
Pods sayfasında hedef uygulama pod'unuzu bulun ve Actions sütununda Details seçeneğine tıklayın. Containers sekmesinde istio-proxy öğesine tıklayın. Sonlandırma boşaltma süresinin 3 sn olarak ayarlandığını göreceksiniz. Yapılandırma etkili olduktan sonra, Pod'un konteyner sayfasında istio-proxy konteyner ayrıntılarını görüntüleyin. PROXY_CONFIG ortam değişkeninde, terminationDrainDuration değeri 3s olarak ayarlanmıştır.
Örnek 2: Istio Proxy başlangıç sırasını ayarlama
By default, ASM globally sets holdApplicationUntilProxyStarts to true. This ensures the Istio Proxy starts successfully before the application container starts. If the application container becomes ready before the Istio Proxy is ready, the pod fails to accept traffic.
holdApplicationUntilProxyStarts is a configuration option that controls application container startup behavior after Sidecar proxy injection. When holdApplicationUntilProxyStarts is set to true, Istio CNI or the Sidecar injector configures the Kubernetes pod to prevent the application container from starting until the proxy container is ready and begins receiving traffic. This ensures all traffic flows through the proxy before the pod receives any traffic, enabling immediate enforcement of traffic management, monitoring, and security policies. In most cases, set holdApplicationUntilProxyStarts to true to ensure proper traffic handling. Set it to false only in specific scenarios where appropriate.
Pods sayfasında hedef uygulama pod'unuzu bulun ve Actions sütununda Details seçeneğine tıklayın. Events sekmesine tıklayın. Uygulama konteynerinin önce, ardından Istio Proxy'nin başladığını göreceksiniz. Pod'un Events sekmesinde, details-v1 pod olay listesi; Pod zamanlaması (Scheduled), görüntü çekme (Pulled), konteyner oluşturma (Created) ve konteyner başlatma (Started) dahil olmak üzere tam konteyner başlatma sırasını gösterir. Başlatılan konteynerler şu sırada görünür: init konteyneri istio-init, uygulama konteyneri details ve Sidecar konteyneri istio-proxy. Başlatılan konteyner olayları vurgulanmıştır ve bu durum holdApplicationUntilProxyStarts yapılandırması tarafından zorlanan başlatma sırasını doğrular.
Ek A: Istio Kaynak Ek Açıklamaları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ek B: ProxyConfig Alanları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|