fix(pod.go): 还原只取gpu的节点pod

online_demonstration
youys 1 month ago
parent 2ed67fcdc6
commit 7be7069719

@ -3,6 +3,7 @@ package data
import ( import (
"context" "context"
"fmt" "fmt"
"k8s.io/client-go/tools/cache"
"sync" "sync"
"time" "time"
"vgpu/internal/biz" "vgpu/internal/biz"
@ -21,17 +22,15 @@ type podRepo struct {
data *Data data *Data
podLister listerscorev1.PodLister podLister listerscorev1.PodLister
pods map[k8stypes.UID]*biz.PodInfo pods map[k8stypes.UID]*biz.PodInfo
allPods []*biz.PodInfo
mutex sync.RWMutex mutex sync.RWMutex
log *log.Helper log *log.Helper
} }
func NewPodRepo(data *Data, logger log.Logger) biz.PodRepo { func NewPodRepo(data *Data, logger log.Logger) biz.PodRepo {
repo := &podRepo{ repo := &podRepo{
data: data, data: data,
pods: make(map[k8stypes.UID]*biz.PodInfo), pods: make(map[k8stypes.UID]*biz.PodInfo),
allPods: []*biz.PodInfo{}, log: log.NewHelper(logger),
log: log.NewHelper(logger),
} }
repo.init() repo.init()
return repo return repo
@ -40,12 +39,12 @@ func NewPodRepo(data *Data, logger log.Logger) biz.PodRepo {
func (r *podRepo) init() { func (r *podRepo) init() {
informerFactory := informers.NewSharedInformerFactoryWithOptions(r.data.k8sCl, time.Hour*1) informerFactory := informers.NewSharedInformerFactoryWithOptions(r.data.k8sCl, time.Hour*1)
r.podLister = informerFactory.Core().V1().Pods().Lister() r.podLister = informerFactory.Core().V1().Pods().Lister()
//informer := informerFactory.Core().V1().Pods().Informer() informer := informerFactory.Core().V1().Pods().Informer()
//informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
// AddFunc: r.onAddPod, AddFunc: r.onAddPod,
// UpdateFunc: r.onUpdatePod, UpdateFunc: r.onUpdatePod,
// DeleteFunc: r.onDeletedPod, DeleteFunc: r.onDeletedPod,
//}) })
stopCh := make(chan struct{}) stopCh := make(chan struct{})
informerFactory.Start(stopCh) informerFactory.Start(stopCh)
informerFactory.WaitForCacheSync(stopCh) informerFactory.WaitForCacheSync(stopCh)
@ -58,8 +57,7 @@ func (r *podRepo) onAddPod(obj interface{}) {
return return
} }
nodeID, ok := pod.Annotations[util.AssignedNodeAnnotations] nodeID, ok := pod.Annotations[util.AssignedNodeAnnotations]
tpiID := pod.Labels["tpi-id"] if !ok {
if !ok && tpiID == "" {
return return
} }
if biz.IsPodInTerminatedState(pod) { if biz.IsPodInTerminatedState(pod) {
@ -83,8 +81,7 @@ func (r *podRepo) onDeletedPod(obj interface{}) {
return return
} }
_, ok = pod.Annotations[util.AssignedNodeAnnotations] _, ok = pod.Annotations[util.AssignedNodeAnnotations]
tpiID := pod.Labels["tpi-id"] if !ok {
if !ok && tpiID == "" {
return return
} }
r.delPod(pod) r.delPod(pod)
@ -97,7 +94,6 @@ func (r *podRepo) addPod(pod *corev1.Pod, nodeID string, devices biz.PodDevices)
pi := &biz.PodInfo{Name: pod.Name, UID: pod.UID, Namespace: pod.Namespace, NodeID: nodeID, Devices: devices, Ctrs: ctrs, Labels: pod.Labels} pi := &biz.PodInfo{Name: pod.Name, UID: pod.UID, Namespace: pod.Namespace, NodeID: nodeID, Devices: devices, Ctrs: ctrs, Labels: pod.Labels}
r.pods[pod.UID] = pi r.pods[pod.UID] = pi
r.allPods = append(r.allPods, pi)
r.log.Infof("Pod added: Name: %s, UID: %s, Namespace: %s, NodeID: %s", pod.Name, pod.UID, pod.Namespace, nodeID) r.log.Infof("Pod added: Name: %s, UID: %s, Namespace: %s, NodeID: %s", pod.Name, pod.UID, pod.Namespace, nodeID)
} }
@ -122,10 +118,10 @@ func (r *podRepo) fetchContainerInfo(pod *corev1.Pod) []*biz.Container {
copier.Copy(&bizContainerDevices, pds) copier.Copy(&bizContainerDevices, pds)
} }
if len(bizContainerDevices) < 1 { if len(bizContainerDevices) < 1 {
for range pod.Spec.Containers { //for range pod.Spec.Containers {
bizContainerDevices = append(bizContainerDevices, biz.ContainerDevices{}) // bizContainerDevices = append(bizContainerDevices, biz.ContainerDevices{})
} //}
//return containers return containers
} }
ctrIdMaps := map[string]string{} ctrIdMaps := map[string]string{}

Loading…
Cancel
Save