code: func allocateHealthCheckNodePort(service *api.Service, nodePortOp *portallocator.PortAllocationOperation) error {
  	healthCheckNodePort := service.Spec.HealthCheckNodePort
  	if healthCheckNodePort != 0 {
  		// If the request has a health check nodePort in mind, attempt to reserve it.
  		err := nodePortOp.Allocate(int(healthCheckNodePort))
  		if err != nil {
  			return fmt.Errorf("failed to allocate requested HealthCheck NodePort %v: %v",
  				healthCheckNodePort, err)
  		}
  		klog.V(4).Infof("Reserved user requested healthCheckNodePort: %d", healthCheckNodePort)
  	} else {
  		// If the request has no health check nodePort specified, allocate any.
  		healthCheckNodePort, err := nodePortOp.AllocateNext()
  		if err != nil {
  			return fmt.Errorf("failed to allocate a HealthCheck NodePort %v: %v", healthCheckNodePort, err)
  		}
  		service.Spec.HealthCheckNodePort = int32(healthCheckNodePort)
  		klog.V(4).Infof("Reserved allocated healthCheckNodePort: %d", healthCheckNodePort)
  	}
  	return nil
  }
docs: // allocateHealthCheckNodePort allocates health check node port to service.