名稱空間解析
查詢應用程式名稱空間會盡最大努力。 我們會迭代一些步驟來找到它。 最簡單和最常見的一種方法是在適當的配置中指定它,例如
spring:
application:
name: app
cloud:
kubernetes:
secrets:
name: secret
namespace: default
sources:
# Spring Cloud Kubernetes looks up a Secret named 'a' in namespace 'default'
- name: a
# Spring Cloud Kubernetes looks up a Secret named 'secret' in namespace 'b'
- namespace: b
# Spring Cloud Kubernetes looks up a Secret named 'd' in namespace 'c'
- namespace: c
name: d
請記住,config map 也可以這樣做。 如果未指定此類名稱空間,它將按以下順序讀取
-
從屬性
spring.cloud.kubernetes.client.namespace
-
從位於
spring.cloud.kubernetes.client.serviceAccountNamespacePath
屬性表示的檔案中的字串 -
從位於
/var/run/secrets/kubernetes.io/serviceaccount/namespace
檔案中的字串(kubernetes 預設名稱空間路徑) -
從指定的客戶端方法呼叫(例如 fabric8 的:
KubernetesClient::getNamespace
),如果客戶端提供此類方法。 反過來,這可以透過環境變數進行配置。 例如,fabric8 客戶端可以透過 "KUBERNETES_NAMESPACE" 屬性進行配置; 有關確切的詳細資訊,請查閱客戶端文件。
如果在上述步驟中未能找到名稱空間,將引發異常。