karmada icon indicating copy to clipboard operation
karmada copied to clipboard

ingress-nginx does not support MCI derived-service

Open luoMonkeyKing opened this issue 2 years ago • 8 comments

What would you like to be added: I don't know if other users in the community have this requirement, that is to do 4-layer load access through ingress. I want derived-service to be able to add endpoint

Why is this needed: When I load the tcp or udp layer 4 network of ingress, I find that it will look for the endpoint of the configuration service. The derived service of karmada mci has no endpoint, only endpoint slices, so the following error will be reported when doing layer 4 network load: Service "default/derived-serve" does not have any active Endpoint for TCP port 80

luoMonkeyKing avatar Jul 11 '22 11:07 luoMonkeyKing

The derived service of karmada mci has no endpoint, only endpoint slices

Yes.

https://github.com/karmada-io/karmada/blob/a50e31ddaf2f5f1db8db051e933829af7166f929/pkg/controllers/mcs/service_export_controller.go#L158-L163

do 4-layer load access through ingress. I want derived-service to be able to add endpoint

Can you give me a minimum reproduce step?

chaunceyjiang avatar Jul 11 '22 14:07 chaunceyjiang

The derived service of karmada mci has no endpoint, only endpoint slices

Yes.

https://github.com/karmada-io/karmada/blob/a50e31ddaf2f5f1db8db051e933829af7166f929/pkg/controllers/mcs/service_export_controller.go#L158-L163

do 4-layer load access through ingress. I want derived-service to be able to add endpoint

Can you give me a minimum reproduce step?

The derived service of karmada mci has no endpoint, only endpoint slices

Yes.

https://github.com/karmada-io/karmada/blob/a50e31ddaf2f5f1db8db051e933829af7166f929/pkg/controllers/mcs/service_export_controller.go#L158-L163

do 4-layer load access through ingress. I want derived-service to be able to add endpoint

Can you give me a minimum reproduce step?

@chaunceyjiang If you deploy MCI, you can directly modify the deployment of ingress-nginx and add the following configuration to args:

     54         - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
     55         - --udp-services-configmap=$(POD_NAMESPACE)/udp-services

tcp-service configmap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: tcp-services
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/component: controller

udp-service configmap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: udp-services
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/component: controller

For details, please refer to this article on the Internet:ingress-tcp-udp

luoMonkeyKing avatar Jul 12 '22 01:07 luoMonkeyKing

ingress-nginx(https://github.com/kubernetes/ingress-nginx) does not support endpointslices. you can modify ingerss-nginx to support endpointslices object. For details, see [multi-cluster-ingress-nginx](https://github.com/karmada-io/multi-cluster-ingress-nginx).

See ingress-nginx‘s Support Kubernetes EndpointSlices issue

GitHubxsy avatar Jul 12 '22 13:07 GitHubxsy

ingress-nginx(https://github.com/kubernetes/ingress-nginx)不支持端点切片。您可以修改 ingerss-nginx 以支持 endpointslices 对象。有关详细信息,请参阅 [ multi-cluster-ingress-nginx ]( https://github.com/karmada-io/multi-cluster-ingress-nginx )。

请参阅 ingress-nginx 的Support Kubernetes EndpointSlices 问题

I was wondering if it would be feasible to import the endpoint through karmada too

luoMonkeyKing avatar Jul 13 '22 00:07 luoMonkeyKing

ingress-nginx(https://github.com/kubernetes/ingress-nginx)不支持端点切片。您可以修改 ingerss-nginx 以支持 endpointslices 对象。有关详细信息,请参阅 [ multi-cluster-ingress-nginx ]( https://github.com/karmada-io/multi-cluster-ingress-nginx )。 请参阅 ingress-nginx 的Support Kubernetes EndpointSlices 问题

I was wondering if it would be feasible to import the endpoint through karmada too

Need to modify the mcs-controller to support endpoints. I don't think that's the right thing to do.

GitHubxsy avatar Jul 14 '22 08:07 GitHubxsy

ingress-nginx(https://github.com/kubernetes/ingress-nginx)不支持端点切片。您可以修改 ingerss-nginx 以支持 endpointslices 对象。有关详细信息,请参阅 [ multi-cluster-ingress-nginx ]( https://github.com/karmada-io/multi-cluster-ingress-nginx )。 请参阅 ingress-nginx 的Support Kubernetes EndpointSlices 问题

I was wondering if it would be feasible to import the endpoint through karmada too

Need to modify the mcs-controller to support endpoints. I don't think that's the right thing to do.

Yes, Need to modify the mcs-controller , I am not sure if this is a good solution, I hope more people can discuss this problem

luoMonkeyKing avatar Jul 14 '22 09:07 luoMonkeyKing

ingress-nginx(https://github.com/kubernetes/ingress-nginx)不支持端点切片。您可以修改 ingerss-nginx 以支持 endpointslices 对象。有关详细信息,请参阅 [ multi-cluster-ingress-nginx ]( https://github.com/karmada-io/multi-cluster-ingress-nginx )。 请参阅 ingress-nginx 的Support Kubernetes EndpointSlices 问题

I was wondering if it would be feasible to import the endpoint through karmada too

Need to modify the mcs-controller to support endpoints. I don't think that's the right thing to do.

Yes, Need to modify the mcs-controller , I am not sure if this is a good solution, I hope more people can discuss this problem

ping @XiShanYongYe-Chang . Can mcs-controller support endpoints? what do you think?

GitHubxsy avatar Jul 15 '22 04:07 GitHubxsy

Can mcs-controller support endpoints? what do you think?

Yes, we could consider supporting endpoint in mcs-controller.

XiShanYongYe-Chang avatar Jul 15 '22 06:07 XiShanYongYe-Chang