kubernetes實踐之三十六:在容器內獲取Pod資訊 Downward API
一:前言
在某些叢集中,叢集中的每個節點都需要將自身的標識(ID)及程式繫結的IP等資訊事先寫入配置檔案中,程式啟動時讀取這些資訊,然後釋出到某個類似服務註冊中心的地方,以實現叢集節點的自動發現功能。
此時可以使用Downward API,具體做法是先編寫一個預啟動指令碼或Init Container,透過環境變數或檔案方式獲取Pod自身的名稱,IP地址等資訊,然後寫入主程式的配置檔案中,最後啟動主程式。
二:實現方式
Downward API 可以透過以下兩種方式將Pod資訊注入容器內部。
1.環境變數:用於單個變數,可以將Pod資訊和Container資訊注入容器內部。
2.Volume掛載: 將陣列類資訊生成檔案,掛載到容器內部。
三: 例項
環境變數方式,將Pod資訊注入為環境變數 dapi-test-pod.yaml
kubectl create -f dapi-test-pod.yaml
kubectl logs dapi-test-pod
在某些叢集中,叢集中的每個節點都需要將自身的標識(ID)及程式繫結的IP等資訊事先寫入配置檔案中,程式啟動時讀取這些資訊,然後釋出到某個類似服務註冊中心的地方,以實現叢集節點的自動發現功能。
此時可以使用Downward API,具體做法是先編寫一個預啟動指令碼或Init Container,透過環境變數或檔案方式獲取Pod自身的名稱,IP地址等資訊,然後寫入主程式的配置檔案中,最後啟動主程式。
二:實現方式
Downward API 可以透過以下兩種方式將Pod資訊注入容器內部。
1.環境變數:用於單個變數,可以將Pod資訊和Container資訊注入容器內部。
2.Volume掛載: 將陣列類資訊生成檔案,掛載到容器內部。
三: 例項
環境變數方式,將Pod資訊注入為環境變數 dapi-test-pod.yaml
點選(此處)摺疊或開啟
-
apiVersion: v1
-
kind: Pod
-
metadata:
-
name: dapi-test-pod
-
namespace: default
-
spec:
-
containers:
-
- name: test-container
-
image: 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_NAMES
-
valueFrom:
-
fieldRef:
- fieldPath: status.podIP
kubectl logs dapi-test-pod
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2154411/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- kubernetes實踐之三十九:Pod初始化容器之Init ContainerAI
- kubernetes實踐之三十八:Pod排程
- kubernetes實踐之三十七:Pod健康檢查
- kubernetes實踐之三十五:Pod配置管理ConfigMap
- Docker 與 K8S學習筆記(二十)—— 使用Downward API向容器注入Pod資訊DockerK8S筆記API
- kubernetes實踐之三十一:kubectl
- python kubernetes 獲取 pod 的 cpu 佔用率Python
- Lazada詳情API介面:一鍵獲取商品資訊的深度實踐API
- Kubernetes 教程:根據 PID 獲取 Pod 名稱
- 容器映象加速指南:探索 Kubernetes 快取最佳實踐快取
- kubernetes實踐之二十二:Pod
- 淘寶詳情API介面:一鍵獲取商品資訊的實踐探索API
- kubernetes實踐之五十六:雲原生
- kubernetes實踐之二十六:GlusterFS
- kubernetes實踐之三十三:基本概念
- kubernetes實踐之三十: SonarQube和SonarQube Runner
- kubernetes實踐之三十二:Jenkins和SonarQube整合Jenkins
- 使用API介面獲取商品資料:從入門到實踐API
- google books api 獲取圖書資訊GoAPI
- kubernetes實踐之十六:RBAC 角色訪問控制
- 使用 C# 獲取 Kubernetes 叢集資源資訊C#
- kubernetes實踐之十九:API概述API
- Kubernetes+Docker+Istio 容器雲實踐Docker
- Pod和容器的LimitRange原理和實踐總結MIT
- Kubernetes筆記(五):瞭解Pod(容器組)筆記
- kubernetes實踐之三:ETCD TLS證書叢集安裝TLS
- kubernetes容器編排之定義環境變數以及通過downwardapi把pod資訊作為環境變數傳入容器內變數API
- Python呼叫ansible API系列(一)獲取資產資訊PythonAPI
- kubernetes實踐之四十:Pod的升級與回滾
- Kubernetes學習筆記(七):訪問Pod後設資料與Kubernetes API筆記API
- 爬蟲實踐之獲取網易雲評論資料資訊爬蟲
- 詳情API介面上貨搬運獲取資訊API介面API
- 呼叫API介面獲取淘寶商品資料:實踐指南與程式碼解析API
- kubernetes實踐之三十四: Master節點安裝與配置AST
- 如何優雅的在 Kubernetes Pod 內進行網路抓包
- .net core Docker 容器新增ffmpeg 獲取視訊資訊和截圖Docker
- 使用阿里巴巴API獲取商品詳情的實踐指南阿里API
- 淘寶API分享:獲取淘寶商品SKU資訊API