text: Title: [Serve] Regression by HTTPS Support: Double Protocol in Endpoint URL
  Body: The PR #3380 introduces the following change:
  
  https://github.com/skypilot-org/skypilot/blob/735ce299d17fc1c0f54afd364dfec2e5b9ff6b46/sky/serve/core.py#L310-L321
  
  
  But when running sky serve up with controller hosted on Kubernetes, this change causes the endpoint to be rendered incorrectly. Simply run `sky serve up examples/serve/http_server/task.yaml -y -n sky-service-6c01 --cloud gcp`, and at the end of the logs there would be:
  
  ```console
  📋 Useful Commands
  ├── To check service status:    sky serve status sky-service-6c01 [--endpoint]
  ├── To teardown the service:    sky serve down sky-service-6c01
  ├── To see replica logs:        sky serve logs sky-service-6c01 [REPLICA_ID]
  ├── To see load balancer logs:  sky serve logs --load-balancer sky-service-6c01
  ├── To see controller logs:     sky serve logs --controller sky-service-6c01
  ├── To monitor the status:      watch -n10 sky serve status sky-service-6c01
  └── To send a test request:     curl http://http://localhost:30060/skypilot/default/sky-serve-controller-e2dc6f0f-e2dc6f0f/30001
  ```
  
  This happens because the `socket_endpoint` may already include the protocol (e.g., if it’s an instance of `HTTPSocketEndpoint`, that's exactly the case of Kubernetes, where `_query_ports_for_ingress` returns an list of `HTTPEndpoint` and `HTTPSEndpoint`). Adding `f'{protocol}://'` results in a double protocol prefix (`http://http://`).
  
  This could potentially break the 'http_server' smoke tests in Kubernetes.
  
  Cc'ing @cblmemo 