Pod列表,如何高效管理你的容器集合?

以下是关于Pod列表的详细内容:

获取集群中所有运行的Pods列表

Pod列表,如何高效管理你的容器集合?插图1
(图片来源网络,侵删)

要获取集群中所有运行的Pods列表,可以使用kubectl get pods -o wide命令,这个命令会显示每个Pod的以下信息:

字段 描述
NAME Pod的名称
READY Pod就绪状态,例如1/1表示所有容器都已就绪
STATUS Pod的状态,例如Running表示Pod正在运行
RESTARTS Pod重启次数
AGE Pod运行时间
IP Pod的IP地址
NODE Pod所在的节点
NOMINATED NODE 可能被调度到的下一个节点(如果有)
READINESS GATES 就绪检查门控(如果配置了的话)

根据命名空间显示Pod列表

要按命名空间显示Pod列表,可以在kubectl get pods后添加-n选项和相应的命名空间名称。

kubectl get pods -n <namespace>

这将列出指定命名空间下的所有Pod。

按照Deployment名称查询所包含的Pod

Pod列表,如何高效管理你的容器集合?插图3
(图片来源网络,侵删)

要按照Deployment名称查询所包含的Pod,可以通过标签选择器来实现,Deployment通过标签选择器匹配Pod标签,因此可以通过这些标签来过滤Pod列表。

kubectl get pods -l app=<deployment_name>

这将列出所有带有app=<deployment_name>标签的Pod。

示例代码片段

以下是一个使用client-go和gin框架整合的示例代码片段,用于展示Pod列表:

package service
import (
	"context"
	"github.com/gin-gonic/gin"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v5"
)
type Pod struct {
	Namespace  string
	Name       string
	Status     string
	Labels     map[string]string
	NodeName   string
	Images     string
	CreateTime string
}
func ListallPod(g *gin.Context) {
	ns := g.Query("ns")
	pods, err := K8sClient.CoreV1().Pods(ns).List(context.Background(), metav1.ListOptions{})
	if err != nil {
		g.Error(err)
	}
	ret := make([]*Pod, 0)
	for _, item := range pods.Items {
		ret = append(ret, &Pod{
			Namespace:  item.Namespace,
			Name:       item.Name,
			Status:     string(item.Status.Phase),
			Labels:     item.Labels,
			NodeName:   item.Spec.NodeName,
			Images:     item.Spec.Containers[0].Image,
			CreateTime: item.CreationTimestamp.Format("2006-01-02 15:04:05"),
		})
	}
	g.JSON(200, ret)
	return
}

这段代码定义了一个名为ListallPod的函数,该函数接收一个Gin上下文对象,并根据传入的命名空间查询并返回Pod列表,每个Pod的信息包括其命名空间、名称、状态、标签、所在节点、镜像和创建时间等。

Pod列表,如何高效管理你的容器集合?插图5
(图片来源网络,侵删)

到此,以上就是小编对于pod list_LIST-LIST的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/82190.html

小末小末
上一篇 2024年10月22日 02:37
下一篇 2024年10月22日 02:48

相关推荐