Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.flux1.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.flux1.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-systemkomutunu çalıştırarakkubectl 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.
İlgili içerik
- 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.