簡體   English   中英

以編程方式獲取Kubernetes中容器所屬的pod的名稱?

[英]Programmatically get the name of the pod that a container belongs to in Kubernetes?

有沒有辦法以編程方式獲取容器屬於Kubernetes的pod的名稱? 如果是這樣的話? 我正在使用fabric8的java客戶端,但卷曲或類似的東西也會很好。

請注意,從那時起我不想使用特定標簽找到pod(我假設)如果使用復制控制器縮放,我可能無法找到合適的pod。

您可以告訴Kubernetes使用向下API將pod名稱放在您選擇的環境變量中。

例如:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: gcr.io/google_containers/busybox
      command: [ "/bin/sh", "-c", "env" ]
      env:
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
  restartPolicy: Never

pod名稱寫入/etc/hostname因此可以從那里讀取它。 在Java(我正在使用)中,您還可以通過調用System.getenv("HOSTNAME")獲取主機名(以及pod的名稱System.getenv("HOSTNAME")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM