Я смотрю следующие 2 примера, в первом пример Список используется для извлечения элемента.
В второй пример используется индекс.
Мне интересно, какой способ и способ получения элемента из локального кеша является предпочтительным.





Примеры, которые вы показали выше, оба используют индексатор, если вы пойдете глубже, вы увидите это.
Для Первый пример (см. здесь)
// Get retrieves the Node from the index for a given name.
func (s *nodeLister) Get(name string) (*v1.Node, error) {
obj, exists, err := s.indexer.GetByKey(name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(v1.Resource("node"), name)
}
return obj.(*v1.Node), nil
}
Для второй пример
item, exists, err := c.informer.GetIndexer().GetByKey(keyRaw)
Правильно. Я использовал этот c.Informer.GetIndexer().GetByKey(key). все время
Хорошо, спасибо, что указали. Итак, для написания собственного контроллера можно использовать любой из способов, верно?