Share via


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

Bu belge, GitOps (Flux v2) ve Open Service Mesh gibi küme uzantılarıyla ilgili yaygın sorunlar için sorun giderme ipuçları sağlar.

Azure Arc özellikli Kubernetes ile ilgili genel sorunları giderme konusunda yardım için bkz . Azure Arc özellikli Kubernetes sorunlarını giderme.

GitOps (Flux v2)

Dekont

Flux v2 uzantısı Azure Arc özellikli Kubernetes kümelerinde veya Azure Kubernetes Service (AKS) kümelerinde kullanılabilir. Bu sorun giderme ipuçları genellikle küme türü ne olursa olsun geçerlidir.

Kaynaklarla ilgili sorunları giderme konusunda fluxConfigurations genel yardım için şu Azure CLI komutlarını belirtilen parametreyle --debug çalıştırın:

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

Web kancası/kuru çalıştırma hataları

Flux'un gibi dry-run failed, error: admission webhook "<webhook>" does not support dry runbir hatayla mutabık olmadığını görürseniz veya öğesini bulup ValidatingWebhookConfiguration veya MutatingWebhookConfigurationNoneOnDryRunolarak ayarlayarak sideEffectsNone sorunu çözebilirsiniz:

Daha fazla bilgi için bkz. hataları Nasıl yaparım? çözmekwebhook does not support dry run?

Uzantıyı microsoft.flux yükleme hataları

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

Yükleme sırasında bir hatayla karşılaşırsanız veya uzantı başarısız durumdaysa, kümenin bu ad alanında ad alanının veya kaynakların oluşturulmasını flux-system kısıtlayan herhangi bir ilkeye sahip olmadığından emin olun.

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

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

Bundan sonra, başka sorunlar olup olmadığını belirlemek için bu komutu çalıştırın. Arc özellikli küme veya managedClusters AKS kümesi için küme türü (-t) parametresini connectedClusters olarak ayarlayın. Uzantı bir GitOps yapılandırması oluşturulurken otomatik olarak yüklendiyse uzantının adı microsoft.flux "flux" olur. Bilgi için statuses nesnesine bakın.

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

Görüntülenen sonuçlar neyin yanlış gittiğini ve nasıl düzeltileceğini belirlemenize yardımcı olabilir. Olası düzeltme eylemleri şunlardır:

  • komutunu çalıştırarak uzantıyı silmeye zorlama az k8s-extension delete --force -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -n flux -t <managedClusters OR connectedClusters>
  • Helm sürümünü çalıştırarak kaldırma helm uninstall flux -n flux-system
  • flux-system komutunu çalıştırarak kümeden ad alanını silinkubectl delete namespaces flux-system

Bundan sonra, uzantıyı otomatik olarak yükleyen microsoft.flux bir flux yapılandırmasını yeniden oluşturabilir veya flux uzantısını el ile yeniden yükleyebilirsiniz.

Microsoft Entra Pod Kimliği'nin microsoft.flux etkinleştirildiği bir kümeye uzantı yükleme hataları

Microsoft Entra Pod Kimliğinin etkin olduğu bir kümeye Flux uzantısını yüklemeyi denerseniz uzantı-aracı podunda hata oluşabilir:

{"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ı durumu olarak da döndürür Failed.

"{\"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 uzantı aracısı pod, belirtecini kümedeki I AVH'dan almaya çalışır. ancak belirteç isteği pod kimliği tarafından kesiliyor). Bu sorunu düzeltmek için uzantının en son sürümüne yükseltin microsoft.flux .

Uzantıyı AKS kümesine microsoft.flux yüklerken kubelet kimliğiyle ilgili sorunlar

AKs kümelerinde kimlik doğrulama seçeneklerinden biri, kullanıcı tarafından atanan yönetilen kimlik kullanan kubelet kimliğidir. Kubelet kimliğinin kullanılması, Azure Container Registry gibi Azure kaynaklarına bağlanırken işlem yükünü azaltabilir ve güvenliği artırabilir.

Flux'un kubelet kimliğini kullanmasına izin vermek için Flux uzantısını yüklerken parametresini --config useKubeletIdentity=true ekleyin.

az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config useKubeletIdentity=true

Uzantı yükleme için microsoft.flux bellek ve CPU gereksinimlerinin karşılandığından emin olun

Uzantıyla microsoft.flux Kubernetes kümenize yüklenen denetleyiciler, Kubernetes küme düğümlerinde düzgün zamanlamak için CPU ve bellek kaynakları gerektirir. Kümenizin istenebilecek en düşük bellek ve CPU kaynaklarını karşılayabildiğinden emin olun. Ayrıca, burada gösterilen olası CPU ve bellek kaynağı gereksinimleri için maksimum sınırları da not edin.

Kapsayıcı Adı En düşük CPU En az bellek En fazla CPU Maksimum bellek
fluxconfig-agent 5 m 30 Mi 50 m 150 Mi
fluxconfig-controller 5 m 30 Mi 100 m 150 Mi
fluent bit 5 m 30 Mi 20 m 150 Mi
helm-controller 100 m 64 Mi 1000 m 1 Gi
kaynak denetleyicisi 50 m 64 Mi 1000 m 1 Gi
kustomize-controller 100 m 64 Mi 1000 m 1 Gi
bildirim denetleyicisi 100 m 64 Mi 1000 m 1 Gi
görüntü otomasyonu denetleyicisi 100 m 64 Mi 1000 m 1 Gi
image-reflector-controller 100 m 64 Mi 1000 m 1 Gi

Gibi Kubernetes cluster containers CPU and memory resource limits should not exceed the specified limitsKubernetes kümelerindeki kapsayıcıların kaynaklarını sınırlayan özel veya yerleşik bir Azure Ağ Geçidi Denetleyicisi İlkesi etkinleştirdiyseniz, ilkedeki kaynak sınırlarının burada 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.

Flux v1

Dekont

En kısa zamanda Flux v2'ye geçiş yapmanızı öneririz. 1 Ocak 2024 tarihinden önce oluşturulan Flux v1 tabanlı küme yapılandırma kaynakları desteği 24 Mayıs 2025'te sona erecektir. 1 Ocak 2024'den itibaren yeni Flux v1 tabanlı küme yapılandırma kaynakları oluşturamayacaksınız.

Flux v1'deki kaynakla ilgili sorunları gidermeye sourceControlConfigurations yardımcı olmak için şu Azure CLI komutlarını parametresi belirtilen şekilde --debug çalıştırın:

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

Azure İzleyici Kapsayıcısı Analizler

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

Kurallı Düğmeli Kubernetes kümesi için ayrıcalıklı modu etkinleştirme

Azure İzleyici Kapsayıcı Analizler, DaemonSet'in ayrıcalıklı modda çalışmasını gerektirir. İzleme için Kurallı Düğmeli Kubernetes kümesini başarıyla ayarlamak için aşağıdaki komutu çalıştırın:

juju config kubernetes-worker allow-privileged=true

Oracle Linux 9.x üzerinde Azure İzleyici Aracısı (AMA) yüklenemiyor

Azure İzleyici Aracısı'nı (AMA) bir Oracle Linux (RHEL) 9.x Kubernetes kümesine yüklemeye çalışırken, ama podları ve AMA-RS podu, poddaki kapsayıcı nedeniyle addon-token-adapter düzgün çalışmayabilir. Bu hatayla, podun günlüklerini ama-logs-rs denetlerken aşağıdakine addon-token-adapter containerbenzer bir çıkış 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 komutunu sudo modprobe iptables_natkullanarak modülü kümedeki her düğüme modprobe açıkça yüklemeniz iptables_nat gerekir. Her düğümde oturum açıp modülü el ile ekledikten iptable_nat sonra AMA yüklemesini yeniden deneyin.

Dekont

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ümenizdeki Open Service Mesh (OSM) uzantısı bileşenlerinin dağıtımını doğrulamak ve sorunlarını gidermek için kullanabileceğiniz komutlar sağlanır.

OSM denetleyicisi dağıtımları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 şuna benzer bir çıkış görürsünüz:

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 çıkarılmış olsa da, ve yeniden başlatmaları olan READY 1/1Running0 başka bir denetleyici vardır. Sütun READY dışında 1/1bir şeyse hizmet ağı bozuk durumdadır. ile 0/1 sütunuREADY, denetim düzlemi kapsayıcısının kilitleniyor olduğunu gösterir.

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

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

sonradan daha 1 yüksek bir sayıya / sahip sütunREADY, sepetlerin yüklü olduğunu gösterir. OSM Denetleyicisi genellikle sepetler takılı olarak düzgün çalışmaz.

OSM denetleyici hizmetini denetleme

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

OSM denetleyicisi iyi durumdaysa aşağıdaki çıkışı görürsünüz:

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

Dekont

Farklı CLUSTER-IP olacak. ve burada gösterilen hizmetle NAMEPORT(S) eşleşmelidir.

OSM denetleyicisi uç noktalarını denetleme

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

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

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

Küme için yoksa ENDPOINTSosm-controller, denetim düzlemi iyi durumda değildir. Bu iyi durumda olmayan durum, denetleyici podunun kilitlendiği veya hiçbir zaman doğru dağıtılmadığını gösterir.

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

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

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

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

OSM enjektör pod'larını denetleme

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

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

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

READY Sütun olmalıdır1/1. 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 şuna benzer bir çıkış görürsünüz:

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

Hizmet için osm-injector listelenen IP adresinin olduğundan 9090emin olun. olmaması EXTERNAL-IPgerekir.

OSM enjektör uç noktalarını denetleme

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

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

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ı 9090 aynı olmalıdır.

Web kancalarını doğrulamayı ve mutating'i denetleme

kubectl get ValidatingWebhookConfiguration --selector app=osm-controller

Doğrulama web kancası iyi durumdaysa şuna benzer bir çıkış görürsünüz:

NAME                     WEBHOOKS   AGE
osm-validator-mesh-osm   1          81m
kubectl get MutatingWebhookConfiguration --selector app=osm-injector

Mutating web kancası iyi durumdaysa şuna benzer bir çıkış görürsünüz:

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

Şu komutu kullanarak doğrulama web kancasının hizmetini ve CA paketini denetleyin:

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

İyi yapılandırılmış bir Web kancası yapılandırmasını doğrulama aşağıdakine benzer bir çıkış elde edilir:

{
  "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ı yapılandırması aşağıdakine benzer bir çıkışa sahip olacaktır:

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

Aşağıdaki komutu kullanarak OSM Denetleyicisi'nin CA Paketini Doğrulama (veya Mutating) web kancası verip vermediğini denetleyin:

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 1000'in altındaki bir sayıysa CA Paketi doğru sağlanmamıştır. Doğru CA Paketi olmadığında hata ValidatingWebhook oluşur.

osm-mesh-config Kaynağı denetleme

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

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

OSM MeshConfig içeriğini denetleyin:

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

Aşağıdakine benzer bir çıktı görmeniz gerekir:

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: ""

osm-mesh-config kaynak değerleri:

Tuş Tür Varsayılan Değer Kubectl Patch Komut Örnekleri
spec.traffic.enableEgress ikili false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enableEgress":false}}}' --type=merge
spec.traffic.enablePermissiveTrafficPolicyMode ikili 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 Dize "24h" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"certificate":{"serviceCertValidityDuration":"24h"}}}' --type=merge
spec.observability.enableDebugServer ikili false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"enableDebugServer":false}}}' --type=merge
spec.observability.osmLogLevel Dize "info" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"tracing":{"osmLogLevel": "info"}}}}' --type=merge
spec.observability.tracing.enable ikili false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"observability":{"tracing":{"enable":true}}}}' --type=merge
spec.sidecar.enablePrivilegedInitContainer ikili false kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"sidecar":{"enablePrivilegedInitContainer":true}}}' --type=merge
spec.sidecar.logLevel Dize "error" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"sidecar":{"logLevel":"error"}}}' --type=merge
spec.featureFlags.enableWASMStats ikili "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableWASMStats":"true"}}}' --type=merge
spec.featureFlags.enableEgressPolicy ikili "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableEgressPolicy":"true"}}}' --type=merge
spec.featureFlags.enableMulticlusterMode ikili "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableMulticlusterMode":"false"}}}' --type=merge
spec.featureFlags.enableSnapshotCacheMode ikili "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableSnapshotCacheMode":"false"}}}' --type=merge
spec.featureFlags.enableAsyncProxyServiceMapping ikili "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableAsyncProxyServiceMapping":"false"}}}' --type=merge
spec.featureFlags.enableIngressBackendPolicy ikili "true" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableIngressBackendPolicy":"true"}}}' --type=merge
spec.featureFlags.enableEnvoyActiveHealthChecks ikili "false" kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"featureFlags":{"enableEnvoyActiveHealthChecks":"false"}}}' --type=merge

Ad alanlarını denetleme

Dekont

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

Ad alanlarını belirli bir hizmet ağıyla birleştirmek için komutunu kullanırız osm namespace add . Kubernetes ad alanı ağın parçası olduğunda gereksinimlerin karşılandığından emin olmak için bu adımları izleyin.

Ad alanının bookbuyerek açıklamalarını 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 bookbuyeretiketlerini 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 de ekleyebilirsiniz. Ad alanı ile "openservicemesh.io/sidecar-injection": "enabled"ek açıklama eklenmiyorsa veya ile "openservicemesh.io/monitored-by": "osm"etiketlenmemişse, OSM enjektör Envoy sepetlerini eklemez.

Dekont

Çağrıldıktan sonra osm namespace add , yalnızca yeni podlar bir Envoy sepete eklenir. Mevcut podlar komutuyla kubectl rollout restart deployment yeniden başlatılmalıdır.

SMI CRD'lerini doğrulama

Aşağıdaki komutu kullanarak 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ümler sayfasını ziyaret edin ve Sürümler açılan listesinden sürümünüzü seçin.

Aşağıdaki komutla 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 release-v1.1 olabilir).

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

Sürümler arasındaki CRD değişikliklerini 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 Envoy proxy'lerine sertifika verme ve sertifikaları yönetme hakkında bilgi için OSM belgeleri sitesine bakın.

Yükseltme Elçisi

Eklenti tarafından izlenen bir ad alanında yeni bir pod oluşturulduğunda, OSM söz konusu poda bir Envoy proxy sepet ekler. Envoy sürümünün güncelleştirilmesi gerekiyorsa, OSM belgeleri sitesindeki Yükseltme Kılavuzu'ndaki adımları izleyin.

Sonraki adımlar

  • 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.