func (plugin *cniNetworkPlugin) deleteFromNetwork(ctx context.Context, network *cniNetwork, podName string, podNamespace string, podSandboxID kubecontainer.ContainerID, podNetnsPath string, annotations map[string]string) error {	rt, err := plugin.buildCNIRuntimeConf(podName, podNamespace, podSandboxID, podNetnsPath, annotations, nil)	if err != nil {		klog.Errorf("Error deleting network when building cni runtime conf: %v", err)		return err	}
	pdesc := podDesc(podNamespace, podName, podSandboxID)	netConf, cniNet := network.NetworkConfig, network.CNIConfig	klog.V(4).Infof("Deleting %s from network %s/%s netns %q", pdesc, netConf.Plugins[0].Network.Type, netConf.Name, podNetnsPath)	err = cniNet.DelNetworkList(ctx, netConf, rt)	// The pod may not get deleted successfully at the first time.	// Ignore "no such file or directory" error in case the network has already been deleted in previous attempts.	// 这个错误 被当成了 “资源已经清理” 忽略了  if err != nil && !strings.Contains(err.Error(), "no such file or directory") {		klog.Errorf("Error deleting %s from network %s/%s: %v", pdesc, netConf.Plugins[0].Network.Type, netConf.Name, err)		return err	}	klog.V(4).Infof("Deleted %s from network %s/%s", pdesc, netConf.Plugins[0].Network.Type, netConf.Name)	return nil}
评论