簡體   English   中英

獲取屬於kubernetes復制控制器的Pod

[英]get pods belonging to a kubernetes replication controller

我想知道是否有一種使用kubernetes API的方法來獲取屬於給定復制控制器的Pod的詳細信息。 我已經查看了參考資料,並且看到了它,唯一的方法是獲取豆莢列表,並通過分析“注釋”部分來檢查每個豆莢列表是否屬於某個RC。 由於json將整個“ kubernetes.io/created-by”部分指定為單個字符串,因此這又是一項艱巨的工作。

每個Replication Controller都有一個選擇器 ,該選擇器定義了它所管理的Pod集:

selector:
    label_name_1: some_value
    label_name_2: another_value

您可以使用選擇器來獲取所有帶有相應標簽集的窗格:

https://k8s.example.com/api/v1/pods?labelSelector=label_name_1%3Dsome_value,label_name_2%3Danother_value

要獲取屬於特定復制控制器的Pod的詳細信息,我們需要在yaml文件中包括選擇器字段,該字段定義復制控制器,並在要創建的Pod模板中包含匹配的標簽字段。 下面給出了復制控制器yaml文件的示例:

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80 

要列出窗格名稱,請使用以下命令:

pods=$(kubectl get pods --selector=app=nginx --output=jsonpath={.items..metadata.name})
echo $pods

在上面的命令中,--output = jsonpath選項指定僅獲取每個pod名稱的表達式。

暫無
暫無

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

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