code: func (m *kubeGenericRuntimeManager) createPodSandbox(pod *v1.Pod, attempt uint32) (string, string, error) {
  	podSandboxConfig, err := m.generatePodSandboxConfig(pod, attempt)
  	if err != nil {
  		message := fmt.Sprintf("GeneratePodSandboxConfig for pod %q failed: %v", format.Pod(pod), err)
  		klog.Error(message)
  		return "", message, err
  	}
  
  	// Create pod logs directory
  	err = m.osInterface.MkdirAll(podSandboxConfig.LogDirectory, 0755)
  	if err != nil {
  		message := fmt.Sprintf("Create pod log directory for pod %q failed: %v", format.Pod(pod), err)
  		klog.Errorf(message)
  		return "", message, err
  	}
  
  	runtimeHandler := ""
  	if utilfeature.DefaultFeatureGate.Enabled(features.RuntimeClass) && m.runtimeClassManager != nil {
  		runtimeHandler, err = m.runtimeClassManager.LookupRuntimeHandler(pod.Spec.RuntimeClassName)
  		if err != nil {
  			message := fmt.Sprintf("CreatePodSandbox for pod %q failed: %v", format.Pod(pod), err)
  			return "", message, err
  		}
  		if runtimeHandler != "" {
  			klog.V(2).Infof("Running pod %s with RuntimeHandler %q", format.Pod(pod), runtimeHandler)
  		}
  	}
  
  	podSandBoxID, err := m.runtimeService.RunPodSandbox(podSandboxConfig, runtimeHandler)
  	if err != nil {
  		message := fmt.Sprintf("CreatePodSandbox for pod %q failed: %v", format.Pod(pod), err)
  		klog.Error(message)
  		return "", message, err
  	}
  
  	return podSandBoxID, "", nil
  }
docs: // createPodSandbox creates a pod sandbox and returns (podSandBoxID, message, error).