Azure Arc özellikli Kubernetes kümeleri için uzantı sorunlarını giderme

Bu makalede, Azure'da GitOps (Flux v2) veya Open Service Mesh (OSM) gibi küme uzantılarıyla ilgili yaygın sorunlar için sorun giderme ipuçları açıklanmaktadır.

Genel olarak Azure Arc özellikli Kubernetes sorunlarını giderme konusunda yardım için bkz . Azure Arc özellikli Kubernetes sorunlarını giderme.

GitOps (Flux v2)

Not

Flux v2 uzantısını Azure Arc özellikli kubernetes kümesinde veya Azure Kubernetes Service (AKS) kümesinde kullanabilirsiniz. Bu ipuçları genellikle tüm küme türleri için geçerlidir.

Genel sorun giderme yardımı almak için, fluxConfigurations kaynaklarını kullanırken --debug parametresiyle şu Azure CLI komutlarını çalıştırın:

az provider show -n Microsoft.KubernetesConfiguration --debug
az k8s-configuration flux create <parameters> --debug

Helm grafiği yapılandırma ayarı hatası

"Unable to render the Helm chart with the provided config settings and config protected settings : Recommendation Please check if the values provided to the config settings and the config protected settings are valid for this extension type : InnerError [template: azure-k8s-flux/templates/source-controller.yaml:100:24: executing "azure-k8s-flux/templates/source-controller.yaml" at <index (lookup "v1" "ConfigMap" "kube-system" "extension-manager-config").data "AZURE_TENANT_ID">: error calling index: index of untyped nil]" değerini okuyan bir hata iletisi görebilirsiniz.

Bu sorunu çözmek için:

  • 1.15.1 veya önceki bir sürümü çalıştırıyorsanız microsoft.flux 1.15.2 veya sonraki bir sürüme yükseltin.
  • Orta Batı ABD, Orta Fransa, Güney Birleşik Krallık veya Batı Avrupa bölgelerinde 1.16.2 sürümünü çalıştırıyorsanız microsoft.flux 1.16.3 veya sonraki bir sürüme yükseltin.

Webhook ön çalıştırma hataları

Flux başarısız olabilir ve benzeri dry-run failed, error: admission webhook "<webhook>" does not support dry runbir hata görüntüleyebilir. Sorunu çözmek için ValidatingWebhookConfiguration veya MutatingWebhookConfiguration adresine gidin. Yapılandırmada sideEffects değerini None veya NoneOnDryRun olarak ayarlayın.

Daha fazla bilgi için "web kancası kuru çalıştırmayı desteklemiyor" hatalarını nasıl düzeltirim? bölümüne bakın.

microsoft.flux uzantısını yükleme hataları

Uzantı, microsoft.flux Azure Arc özellikli kubernetes kümesine veya AKS kümesine Flux denetleyicilerini ve Azure GitOps aracılarını yükler. Uzantı bir kümede zaten yüklü değilse ve küme için bir GitOps yapılandırma kaynağı oluşturursanız, uzantı otomatik olarak yüklenir.

Kurulum sırasında bir hatayla karşılaşırsanız veya uzantı bir Failed durumu gösteriyorsa, kümenin flux-system ad alanı veya bu ad alanındaki kaynakların oluşturulmasını kısıtlayan herhangi bir ilkeye sahip olmadığından emin olun.

AKS kümesi için Azure aboneliğinde özellik bayrağının Microsoft.ContainerService/AKS-ExtensionManager etkinleştirildiğinden emin olun:

az feature register --namespace Microsoft.ContainerService --name AKS-ExtensionManager

Ardından, başka sorunlar olup olmadığını belirlemek için aşağıdaki komutu çalıştırın. Azure Arc özellikli küme için küme türü parametresini (-t) connectedClusters olarak veya managedClusters AKS kümesi için olarak ayarlayın. GitOps yapılandırmanızı oluşturduğunuzda uzantı otomatik olarak yüklendiyse, uzantının microsoft.flux adı olur flux.

az k8s-extension show -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -n flux -t <connectedClusters or managedClusters>

Çıkış, sorunu tanımlamanıza ve sorunu nasıl çözebileceğinize yardımcı olabilir. Olası düzeltme eylemleri şunlardır:

  • komutunu çalıştırarak az k8s-extension delete --force -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -n flux -t <managedClusters OR connectedClusters>uzantıyı zorla silin.
  • komutunu çalıştırarak helm uninstall flux -n flux-systemHelm sürümünü kaldırın.
  • flux-system komutunu çalıştırarak kubectl delete namespaces flux-systemkümeden ad alanını silin.

Ardından, oluşturabilir veya microsoft.flux.

Microsoft Entra pod yönetilen kimliğine sahip bir kümeye microsoft.flux uzantısının yüklenmesi sırasında oluşan hatalar.

Flux uzantısını Microsoft Entra pod ile yönetilen kimliği olan bir kümeye yüklemeye çalışırsanız podda extension-agent bir hata oluşabilir. Çıkış şu örneğe benzer:

{"Message":"2021/12/02 10:24:56 Error: in getting auth header : error {adal: Refresh request failed. Status Code = '404'. Response body: no azure identity found for request clientID <REDACTED>\n}","LogType":"ConfigAgentTrace","LogLevel":"Information","Environment":"prod","Role":"ClusterConfigAgent","Location":"westeurope","ArmId":"/subscriptions/<REDACTED>/resourceGroups/<REDACTED>/providers/Microsoft.Kubernetes/managedclusters/<REDACTED>","CorrelationId":"","AgentName":"FluxConfigAgent","AgentVersion":"0.4.2","AgentTimestamp":"2021/12/02 10:24:56"}

Uzantının durumu Failed olarak döner.

"{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"ExtensionCreationFailed\",\"message\":\" error: Unable to get the status from the local CRD with the error : {Error : Retry for given duration didn't get any results with err {status not populated}}\"}]}}",

Bu durumda pod, extension-agent belirtecini kümedeki Azure Örnek Meta Veri Hizmeti'nden almaya çalışır, ancak belirteç isteği pod kimliği tarafından kesilir. Bu sorunu çözmek için uzantının en son sürümüne yükseltin microsoft.flux .

microsoft.flux uzantısını yüklemek için bellek ve CPU kaynak gereksinimleri

Uzantıyı yüklediğinizde microsoft.flux Kubernetes kümenize yüklenen denetleyiciler, Kubernetes küme düğümünde düzgün zamanlamak için yeterli CPU ve bellek kaynağına sahip olmalıdır. Kümenizin en düşük bellek ve CPU kaynak gereksinimlerini karşıladığından emin olun.

Aşağıdaki tabloda, bu senaryo için olası CPU ve bellek kaynağı gereksinimleri için en düşük ve en yüksek sınırlar listelemektedir:

Kapsayıcı adı En düşük CPU En az bellek En fazla CPU Azami bellek kapasitesi
fluxconfig-agent 5 metre 30 Mi 50 m 150 Mi
fluxconfig-controller 5 metre 30 Mi 100 m 150 Mi
fluent-bit 5 metre 30 Mi 20 m 150 Mi
helm-controller 100 m 64 Mi 1.000 m 1 GB
source-controller 50 m 64 Mi 1.000 m 1 GB
kustomize-controller 100 m 64 Mi 1.000 m 1 GB
notification-controller 100 m 64 Mi 1.000 m 1 GB
image-automation-controller 100 m 64 Mi 1.000 m 1 GB
image-reflector-controller 100 m 64 Mi 1.000 m 1 GB

Kubernetes kümelerindeki kapsayıcıların kaynaklarını sınırlayan özel veya yerleşik bir Azure İlkesi Gatekeeper ilkesi etkinleştirdiyseniz, ilkedeki kaynak sınırlarının önceki tabloda gösterilen sınırlardan büyük olduğundan veya flux-system ad alanının ilke atamasında parametrenin excludedNamespaces bir parçası olduğundan emin olun. Bu senaryoda ilke örneği olarak verilmiştir Kubernetes cluster containers CPU and memory resource limits should not exceed the specified limits.

Azure Monitör Kapsayıcı Bilgileri

Bu bölüm, Azure Arc özellikli Kubernetes kümeleri için Azure İzleyici'de Kapsayıcı içgörüleriyle ilgili sorunları giderme konusunda yardım sağlar.

Canonical Charmed Kubernetes kümesi için ayrıcalıklı modu etkinleştirme

Azure Monitor Container Insights, Kubernetes DaemonSet'in ayrıcalıklı modda çalışmasını gerektirir. Bir Canonical Charmed Kubernetes kümesini izleme amaçlı başarıyla kurmak için aşağıdaki komutu çalıştırın:

juju config kubernetes-worker allow-privileged=true

Oracle Linux 9.x üzerinde AMA podları yüklenemiyor

Azure İzleyici Aracısı'nı (AMA) Oracle Linux (Red Hat Enterprise Linux (RHEL)) 9.x Kubernetes kümesine yüklemeye çalışırsanız, AMA podları ve AMA-RS podu, poddaki kapsayıcı nedeniyle addon-token-adapter düzgün çalışmayabilir. Belirli podun günlüklerini ama-logs-rs kontrol ettiğinizde, addon-token-adapter container içinde aşağıdaki örneğe benzer bir çıktı görürsünüz.

Command: kubectl -n kube-system logs ama-logs-rs-xxxxxxxxxx-xxxxx -c addon-token-adapter
 
Error displayed: error modifying iptable rules: error adding rules to custom chain: running [/sbin/iptables -t nat -N aad-metadata --wait]: exit status 3: modprobe: can't change directory to '/lib/modules': No such file or directory

iptables v1.8.9 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

Perhaps iptables or your kernel needs to be upgraded.

Uzantının yüklenmesi modülü gerektirdiğinden iptable_nat bu hata oluşur, ancak bu modül Oracle Linux (RHEL) 9.x dağıtımlarında otomatik olarak yüklenmez.

Bu sorunu çözmek için modülü kümedeki iptables_nat her düğüme açıkça yüklemeniz gerekir. modprobe komutunu sudo modprobe iptables_natkullanın. Her düğümde oturum açıp modülü el ile ekledikten iptable_nat sonra AMA yüklemesini yeniden deneyin.

Not

Bu adımın gerçekleştirilmesi modülü kalıcı iptables_nat hale getirmez.

Azure Arc özellikli Open Service Mesh

Bu bölümde, kümenizde Open Service Mesh (OSM) uzantısı bileşenlerinin dağıtımını doğrulamak ve sorunlarını gidermek için kullanabileceğiniz komutlar gösterilir.

Uyarı

Microsoft, AKS için Open Service Mesh (OSM) eklentisinin 30 Eylül 2027'de kullanımdan kaldırıldığını duyurdu. Yukarı akış OSM projesi, Cloud Native Computing Foundation (CNCF) tarafından da kullanımdan kaldırılmıştır.

OSM denetleyicisi dağıtımını denetleme

kubectl get deployment -n arc-osm-system --selector app=osm-controller

OSM denetleyicisi iyi durumdaysa şuna benzer bir çıkış görürsünüz:

NAME             READY   UP-TO-DATE   AVAILABLE   AGE
osm-controller   1/1     1            1           59m

OSM denetleyici podlarını denetleme

kubectl get pods -n arc-osm-system --selector app=osm-controller

OSM denetleyicisi iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME                            READY   STATUS    RESTARTS   AGE
osm-controller-b5bd66db-wglzl   0/1     Evicted   0          61m
osm-controller-b5bd66db-wvl9w   1/1     Running   0          31m

Bir denetleyici bir noktada Evicted durumuna sahipken, başka bir denetleyici READY durumuna, 1/1 ve Running ile 0 kez yeniden başlatma yaparak sahiptir. Eğer READY durumu, 1/1 dışında herhangi bir durumdaysa, hizmet ağı bozuk bir durumda olur. Eğer READY0/1, kontrol düzlemi konteyneri çöküyor.

Denetleyici günlüklerini incelemek için aşağıdaki komutu kullanın:

kubectl logs -n arc-osm-system -l app=osm-controller

Eğer READY durumu eğik çizgiden sonra 1 daha büyük bir sayıysa, yan arabalar yüklenir. Yan arabalar takılıyken OSM denetleyicisi genellikle düzgün çalışmaz.

OSM denetleyici hizmetini denetleme

OSM denetleyici hizmetini denetlemek için şu komutu çalıştırın:

kubectl get service -n arc-osm-system osm-controller

OSM denetleyicisi iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)              AGE
osm-controller   ClusterIP   10.0.31.254   <none>        15128/TCP,9092/TCP   67m

Not

için CLUSTER-IP gerçek değer bu örnekten farklı olacaktır. NAME ve PORT(S) değerleri, bu örnekte gösterilen değerlerle eşleşmelidir.

OSM denetleyicisi uç noktalarını denetleme

kubectl get endpoints -n arc-osm-system osm-controller

OSM denetleyicisi iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME             ENDPOINTS                              AGE
osm-controller   10.240.1.115:9092,10.240.1.115:15128   69m

Kümede değeri ENDPOINTS olan bir osm-controller yoksa, denetim düzlemi sağlıklı değildir. Bu sağlıksız durum, denetleyici podunun çöktüğü veya hiçbir zaman doğru şekilde dağıtılmadığını gösterir.

OSM enjektör dağıtımını denetleme

kubectl get deployments -n arc-osm-system osm-injector

OSM enjektör iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME           READY   UP-TO-DATE   AVAILABLE   AGE
osm-injector   1/1     1            1           73m

OSM enjektör podunu denetleme

kubectl get pod -n arc-osm-system --selector app=osm-injector

OSM enjektör iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME                            READY   STATUS    RESTARTS   AGE
osm-injector-5986c57765-vlsdk   1/1     Running   0          73m

READY olan durum 1/1 olmalıdır. Diğer tüm değerler iyi durumda olmayan bir OSM enjektör podunun olduğunu gösterir.

OSM enjektör hizmetini denetleme

kubectl get service -n arc-osm-system osm-injector

OSM enjektör iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME           TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
osm-injector   ClusterIP   10.0.39.54   <none>        9090/TCP   75m

osm-injector hizmeti için listelenen IP adresinin 9090 olduğundan emin olun. için EXTERNAL-IPhiçbir değer listelenmemelidir.

OSM enjektör uç noktalarını denetleme

kubectl get endpoints -n arc-osm-system osm-injector

OSM enjektör iyi durumdaysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME           ENDPOINTS           AGE
osm-injector   10.240.1.172:9090   75m

OSM'nin çalışması için osm-injectoriçin en az bir uç nokta olmalıdır. OSM enjektör uç noktalarınızın IP adresi değişir, ancak bağlantı noktası değeri 9090 aynı olmalıdır.

Web kancalarını denetleme: Doğrulama ve Değiştirme

Aşağıdaki komutu çalıştırarak Doğrulama web kancasını denetleyin:

kubectl get ValidatingWebhookConfiguration --selector app=osm-controller

Doğrulama webkancası iyi durumdaysa, aşağıdaki örneğe benzer bir çıktı görünür:

NAME                     WEBHOOKS   AGE
osm-validator-mesh-osm   1          81m

Aşağıdaki komutu çalıştırarak Mutating web kancasını denetleyin:

kubectl get MutatingWebhookConfiguration --selector app=osm-injector

Eğer Mutating web kancası sağlıklıysa, aşağıdaki örneğe benzer bir çıkış görüntülenir:

NAME                  WEBHOOKS   AGE
arc-osm-webhook-osm   1          102m

Doğrulama web kancasının hizmetini ve Sertifika Yetkilisi paketini (CA paketi) şu komutu kullanarak denetleyin:

kubectl get ValidatingWebhookConfiguration osm-validator-mesh-osm -o json | jq '.webhooks[0].clientConfig.service'

İyi yapılandırılmış bir Doğrulama web kancasının çıktısı şu örneğe benzer:

{
  "name": "osm-config-validator",
  "namespace": "arc-osm-system",
  "path": "/validate",
  "port": 9093
}

Aşağıdaki komutu kullanarak Mutating web kancasının hizmetini ve CA paketini denetleyin:

kubectl get MutatingWebhookConfiguration arc-osm-webhook-osm -o json | jq '.webhooks[0].clientConfig.service'

İyi yapılandırılmış bir Mutating web kancasının çıktısı şu örneğe benzer:

{
  "name": "osm-injector",
  "namespace": "arc-osm-system",
  "path": "/mutate-pod-creation",
  "port": 9090
}

Aşağıdaki komutu kullanarak OSM denetleyicisinin Doğrulama (veya Mutating) web kancasına bir CA paketi verip vermediğini kontrol edin:

kubectl get ValidatingWebhookConfiguration osm-validator-mesh-osm -o json | jq -r '.webhooks[0].clientConfig.caBundle' | wc -c
kubectl get MutatingWebhookConfiguration arc-osm-webhook-osm -o json | jq -r '.webhooks[0].clientConfig.caBundle' | wc -c

Örnek çıkış:

1845

Çıktıdaki sayı bayt sayısını veya CA paketinin boyutunu gösterir. Çıkış boş, 0 veya 1.000'in altındaki bir sayıysa CA paketi doğru sağlanmamıştır. Doğru bir CA paketi olmadan ValidatingWebhook hata verir.

osm-mesh-config Kaynağı kontrol et

Kaynağın varlığını denetleyin:

kubectl get meshconfig osm-mesh-config -n arc-osm-system

OSM meshconfig ayarının değerini denetleyin:

kubectl get meshconfig osm-mesh-config -n arc-osm-system -o yaml

Bu örneğe benzer bir çıktı arayın:

apiVersion: config.openservicemesh.io/v1alpha1
kind: MeshConfig
metadata:
  creationTimestamp: "0000-00-00A00:00:00A"
  generation: 1
  name: osm-mesh-config
  namespace: arc-osm-system
  resourceVersion: "2494"
  uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31
spec:
  certificate:
    certKeyBitSize: 2048
    serviceCertValidityDuration: 24h
  featureFlags:
    enableAsyncProxyServiceMapping: false
    enableEgressPolicy: true
    enableEnvoyActiveHealthChecks: false
    enableIngressBackendPolicy: true
    enableMulticlusterMode: false
    enableRetryPolicy: false
    enableSnapshotCacheMode: false
    enableWASMStats: true
  observability:
    enableDebugServer: false
    osmLogLevel: info
    tracing:
      enable: false
  sidecar:
    configResyncInterval: 0s
    enablePrivilegedInitContainer: false
    logLevel: error
    resources: {}
  traffic:
    enableEgress: false
    enablePermissiveTrafficPolicyMode: true
    inboundExternalAuthorization:
      enable: false
      failureModeAllow: false
      statPrefix: inboundExtAuthz
      timeout: 1s
    inboundPortExclusionList: []
    outboundIPRangeExclusionList: []
    outboundPortExclusionList: []
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

Aşağıdaki tabloda kaynak değerleri listelemektedir osm-mesh-config :

Anahtar Tip Varsayılan değer Kubectl patch komut örnekleri
spec.traffic.enableEgress boolean false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enableEgress":false}}}' --type=merge
spec.traffic.enablePermissiveTrafficPolicyMode boolean true kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
spec.traffic.outboundPortExclusionList dizi [] kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"outboundPortExclusionList":[6379,8080]}}}' --type=merge
spec.traffic.outboundIPRangeExclusionList dizi [] kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"outboundIPRangeExclusionList":["10.0.0.0/32","1.1.1.1/24"]}}}' --type=merge
spec.traffic.inboundPortExclusionList dizi [] kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"inboundPortExclusionList":[6379,8080]}}}' --type=merge
spec.certificate.serviceCertValidityDuration Metin Dizesi "24h" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"certificate":{"serviceCertValidityDuration":"24h"}}}' --type=merge
spec.observability.enableDebugServer boolean false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"enableDebugServer":false}}}' --type=merge
spec.observability.osmLogLevel Metin Dizesi "info" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"tracing":{"osmLogLevel": "info"}}}}' --type=merge
spec.observability.tracing.enable boolean false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"tracing":{"enable":true}}}}' --type=merge
spec.sidecar.enablePrivilegedInitContainer boolean false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"sidecar":{"enablePrivilegedInitContainer":true}}}' --type=merge
spec.sidecar.logLevel Metin Dizesi "error" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"sidecar":{"logLevel":"error"}}}' --type=merge
spec.featureFlags.enableWASMStats boolean "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableWASMStats":"true"}}}' --type=merge
spec.featureFlags.enableEgressPolicy boolean "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableEgressPolicy":"true"}}}' --type=merge
spec.featureFlags.enableMulticlusterMode boolean "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableMulticlusterMode":"false"}}}' --type=merge
spec.featureFlags.enableSnapshotCacheMode boolean "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableSnapshotCacheMode":"false"}}}' --type=merge
spec.featureFlags.enableAsyncProxyServiceMapping boolean "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableAsyncProxyServiceMapping":"false"}}}' --type=merge
spec.featureFlags.enableIngressBackendPolicy boolean "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableIngressBackendPolicy":"true"}}}' --type=merge
spec.featureFlags.enableEnvoyActiveHealthChecks boolean "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableEnvoyActiveHealthChecks":"false"}}}' --type=merge

Ad alanlarını denetleme

Not

arc-osm-system ad alanı hiçbir zaman bir hizmet ağına katılmaz ve burada gösterilen anahtar/değer çiftleriyle etiketlenmez veya notla eklenmez.

Ad alanlarını belirli bir hizmet ağıyla birleştirmek için komutunu kullanabilirsiniz osm namespace add . Kubernetes ad alanı ağın bir parçası olduğunda, gereksinimlerin karşılandığını onaylamak için aşağıdaki adımları tamamlayın.

Ad alanının ek açıklamalarını bookbuyer görüntüleyin:

kubectl get namespace bookbuyer -o json | jq '.metadata.annotations'

Aşağıdaki ek açıklama mevcut olmalıdır:

{
  "openservicemesh.io/sidecar-injection": "enabled"
}

Ad alanının etiketlerini bookbuyer görüntüleyin:

kubectl get namespace bookbuyer -o json | jq '.metadata.labels'

Aşağıdaki etiket mevcut olmalıdır:

{
  "openservicemesh.io/monitored-by": "osm"
}

CLI kullanmıyorsanız osm , bu ek açıklamaları ad alanlarınıza el ile ekleyebilirsiniz. Ad alanı "openservicemesh.io/sidecar-injection": "enabled" ile açıklama eklenmemişse veya "openservicemesh.io/monitored-by": "osm" ile etiketlenmemişse, OSM enjektörü Envoy yan arabaları eklemez.

Not

Çağrıldıktan sonra osm namespace add , yalnızca yeni podlara bir Envoy sidecar enjekte edilir. Mevcut podlar, kubectl rollout restart deployment komutunu kullanarak yeniden başlatılmalıdır.

SMI CRD'lerini doğrulama

OSM Service Mesh Arabirimi (SMI) için kümenin gerekli özel kaynak tanımlarına (CRD) sahip olup olmadığını denetleyin:

kubectl get crds

CRD'lerin yayın dalında bulunan sürümlere karşılık olduğundan emin olun. Hangi CRD sürümlerinin kullanımda olduğunu onaylamak için SMI desteklenen sürümlerine bakın ve Sürümler menüsünden sürümünüzü seçin.

Aşağıdaki komutu kullanarak yüklü CRD'lerin sürümlerini alın:

for x in $(kubectl get crds --no-headers | awk '{print $1}' | grep 'smi-spec.io'); do
    kubectl get crd $x -o json | jq -r '(.metadata.name, "----" , .spec.versions[].name, "\n")'
done

CRD'ler eksikse, bunları kümeye yüklemek için aşağıdaki komutları kullanın. Bu komutlardaki sürümü gerektiği gibi değiştirin (örneğin, v1.1.0 yerine release-v1.1 kullanabilirsiniz).

kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm/release-v1.0/cmd/osm-bootstrap/crds/smi_http_route_group.yaml

kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm/release-v1.0/cmd/osm-bootstrap/crds/smi_tcp_route.yaml

kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm/release-v1.0/cmd/osm-bootstrap/crds/smi_traffic_access.yaml

kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm/release-v1.0/cmd/osm-bootstrap/crds/smi_traffic_split.yaml

CRD sürümlerinin sürümler arasında nasıl değiştiğini görmek için OSM sürüm notlarına bakın.

Sertifika yönetimi sorunlarını giderme

OSM'nin uygulama podlarında çalışan Elçi proxy'lerine sertifika verme ve sertifikaları yönetme hakkında bilgi için OSM belgelerine bakın.

Envoy'u Yükselt

Eklenti tarafından izlenen bir ad alanında yeni bir pod oluşturulduğunda, OSM o poda bir Envoy proxy sidecar enjekte eder. Envoy sürümünün güncelleştirilmesi gerekiyorsa, OSM belgelerindeki Yükseltme Kılavuzu'ndaki adımları izleyin.

Azure Kubernetes Fleet Manager

Ortamınıza ve yapılandırmanıza bağlı olarak Arc özellikli bir Kubernetes kümesini Azure Kubernetes Fleet Manager hub'ına bağlarken bazı sınırlamalar uygulanabilir. Azure Kubernetes Fleet Manager’ın Arc özellikli Kubernetes kümesi üyeleri için önemli konular başlıklı gereksinimler ve önemli hususların tam listesini inceleyin.

  • Küme uzantıları hakkında daha fazla bilgi edinin.
  • Arc özellikli Kubernetes kümeleri için genel sorun giderme ipuçlarını görüntüleyin.