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 run
bir hatayla mutabık olmadığını görürseniz veya öğesini bulup ValidatingWebhookConfiguration
veya MutatingWebhookConfiguration
NoneOnDryRun
olarak ayarlayarak sideEffects
None
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 limits
Kubernetes 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 container
benzer 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_nat
kullanarak 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/1
Running
0
başka bir denetleyici vardır. Sütun READY
dışında 1/1
bir ş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 NAME
PORT(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 ENDPOINTS
osm-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 9090
emin olun. olmaması EXTERNAL-IP
gerekir.
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-injector
iç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 bookbuyer
ek 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 bookbuyer
etiketlerini 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.