名稱空間解析

查詢應用程式名稱空間會盡最大努力。 我們會迭代一些步驟來找到它。 最簡單和最常見的一種方法是在適當的配置中指定它,例如

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 也可以這樣做。 如果未指定此類名稱空間,它將按以下順序讀取

  1. 從屬性 spring.cloud.kubernetes.client.namespace

  2. 從位於 spring.cloud.kubernetes.client.serviceAccountNamespacePath 屬性表示的檔案中的字串

  3. 從位於 /var/run/secrets/kubernetes.io/serviceaccount/namespace 檔案中的字串(kubernetes 預設名稱空間路徑)

  4. 從指定的客戶端方法呼叫(例如 fabric8 的: KubernetesClient::getNamespace),如果客戶端提供此類方法。 反過來,這可以透過環境變數進行配置。 例如,fabric8 客戶端可以透過 "KUBERNETES_NAMESPACE" 屬性進行配置; 有關確切的詳細資訊,請查閱客戶端文件。

如果在上述步驟中未能找到名稱空間,將引發異常。