網(wǎng)上找了很多辦法都沒用,自己琢磨了下,在環(huán)境變量里設(shè)置fieldRef讀取status.hostIP的值,這個其實(shí)就是宿主機(jī)的值,再在Pod里通過環(huán)境變量讀取就好了。
同理一樣可以獲得節(jié)點(diǎn)名稱,所在的命名空間等
fieldRef<Object>:當(dāng)前Pod資源的指定字段,目前支持使用的字段包括 metadata.name、metadata.namespace、metadata.labels、metadata.annotations、spec.nodeName、spec.serviceAccountName、status.hostIP和status.podIP。
resourceFieldRef<Object>:當(dāng)前容器的特定系統(tǒng)資源的最小值(配額)或最大值(限額),目前支持的引用包括limits.cpu、limts.ephemeral-storage、requests、cpu、requests.memory、requests.ephemeral-storage。
這是一個yaml示例
apiVersion: v1
kind: Pod
metadata:
? name: env-demo
? labels:
? ? purpose: demonstrate-environment-variables
spec:
? containers:
? - name: env-demo-container
? ? image: busybox
? ? command: [ "httpd" ]
? ? args: [ "-f" ]
? ? env:
? ? - name: HELLO_WORLD
? ? ? value: just a demo
? ? - name: MY_NODE_NAME
? ? ? valueFrom:
? ? ? ? fieldRef:
? ? ? ? ? fieldPath: spec.nodeName
? ? - name: MY_NODE_IP
? ? ? valueFrom:
? ? ? ? fieldRef:
? ? ? ? ? fieldPath: status.hostIP
? ? - name: MY_POD_NAMESPACE
? ? ? valueFrom:
? ? ? ? fieldRef:
? ? ? ? ? fieldPath: metadata.namespace
? restartPolicy: OnFailure