命名空間解析
尋找應用程式命名空間是盡力而為的過程。我們會依序執行一些步驟來尋找它。最簡單且最常見的方法是在適當的組態中指定它,例如
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
請記住,ConfigMap 也可以執行相同的操作。如果未指定此類命名空間,則將依以下順序讀取(依此順序)
-
從屬性
spring.cloud.kubernetes.client.namespace
-
從
spring.cloud.kubernetes.client.serviceAccountNamespacePath
屬性指定檔案中駐留的字串 -
從
/var/run/secrets/kubernetes.io/serviceaccount/namespace
檔案(kubernetes 預設命名空間路徑)中駐留的字串 -
從指定的用戶端方法呼叫(例如 fabric8 的:
KubernetesClient::getNamespace
),如果用戶端提供此類方法。反過來說,這可以透過環境屬性進行配置。例如,fabric8 用戶端可以透過 "KUBERNETES_NAMESPACE" 屬性進行配置;有關確切詳細資訊,請參閱用戶端文件。
如果從上述步驟中找不到命名空間,將會引發例外。