## Nebula port configurable

We provide the fields `config` in CRD to define the port settings for each component in NebulaGraph.
Here is the configuration file for NebulaCluster which have a custom port and http port:
```yaml
apiVersion: apps.nebula-graph.io/v1alpha1
kind: NebulaCluster
metadata:
  name: nebula
  namespace: default
spec:
  graphd:
    config:
      port: "3669"
      ws_http_port: "8080"
      logtostderr: "true"
      redirect_stdout: "false"
      stderrthreshold: "0"
    resources:
      requests:
        cpu: "200m"
        memory: "500Mi"
      limits:
        cpu: "1"
        memory: "1Gi"
    replicas: 1
    image: vesoft/nebula-graphd
    version: v3.6.0
  metad:
    config:
      ws_http_port: 8081
      redirect_stdout: "false"
      stderrthreshold: "0"
      logtostder: "true"
    resources:
      requests:
        cpu: "300m"
        memory: "500Mi"
      limits:
        cpu: "1"
        memory: "1Gi"
    replicas: 1
    image: vesoft/nebula-metad
    version: v3.6.0
    dataVolumeClaim:
      resources:
        requests:
          storage: 2Gi
      storageClassName: local-path
  storaged:
    config:
      ws_http_port: 8082
      redirect_stdout: "false"
      stderrthreshold: "0"
      logtostder: "true"
    resources:
      requests:
        cpu: "300m"
        memory: "500Mi"
      limits:
        cpu: "1"
        memory: "1Gi"
    replicas: 1
    image: vesoft/nebula-storaged
    version: v3.6.0
    dataVolumeClaims:
    - resources:
        requests:
          storage: 2Gi
      storageClassName: local-path
    enableAutoBalance: true
  reference:
    name: statefulsets.apps
    version: v1
  schedulerName: default-scheduler
  imagePullPolicy: IfNotPresent
  imagePullSecrets:
  - name: nebula-image
  enablePVReclaim: true
  topologySpreadConstraints:
  - topologyKey: kubernetes.io/hostname
    whenUnsatisfiable: "ScheduleAnyway"
```

Verify the configuration:
```shell
$ kubectl get svc
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
nebula-graphd-headless      ClusterIP   None             <none>        3669/TCP,8080/TCP            10m
nebula-graphd-svc           ClusterIP   10.102.13.115    <none>        3669/TCP,8080/TCP            10m
nebula-metad-headless       ClusterIP   None             <none>        9559/TCP,8081/TCP            11m
nebula-storaged-headless    ClusterIP   None             <none>        9779/TCP,8082/TCP,9778/TCP   11m
$ curl 10.102.13.115:8080/status
{"git_info_sha":"537f942","status":"running"}
```