2017-03-01 62 views
2

Statefulsets直接kubectl/kubernetes創建具有以下的窗格名稱索引或序號吊艙。如果實體名稱爲redis,例如複製計數爲3,那麼我們將得到redis-0,redis-1和redis-2。有什麼方法可以訪問索引或序號嗎?傳遞給容器的啓動腳本將非常有用。如果它在向下的api中可用,那將會很好。在嘗試將PVC與PV的排隊時使用它真的很不錯。kubernetes statefulsets指數/序模板暴露

是否有可能有一些這方面的祕密模板變量?

請注意,我已經找到辦法解決它。我正在爲我的命令使用腳本並使用主機名來提取它。但它看起來像很多工作(和未來的維護)。

+0

正在進行的討論https://github.com/kubernetes/kubernetes/issues/30427 –

回答

0

最終,這應該加入到清單ENV工作(我聽說1.9起,但尚未證實):

- name: KAFKA_BROKER_ID 
    valueFrom: 
     fieldRef: 
     fieldPath: metadata.annotations['spec.pod.beta.kubernetes.io/statefulset-index'] 

現在你可以「砍」它就像你是使用腳本或使用生命週期事件如下:

lifecycle: 
     postStart: 
     exec: 
      command: 
      - "/bin/sh" 
      - "-c" 
      - "export KAFKA_BROKER_ID=${HOSTNAME##*-}"