Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ingress-nginx does not support MCI derived-service #2172

Open
luoMonkeyKing opened this issue Jul 11, 2022 · 8 comments
Open

ingress-nginx does not support MCI derived-service #2172

luoMonkeyKing opened this issue Jul 11, 2022 · 8 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@luoMonkeyKing
Copy link
Contributor

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 luoMonkeyKing added the kind/feature Categorizes issue or PR as related to a new feature. label Jul 11, 2022
@chaunceyjiang
Copy link
Member

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

Yes.

case util.EndpointSliceKind:
if err := c.handleEndpointSliceEvent(fedKey); err != nil {
klog.Errorf("Failed to handle endpointSlice(%s) event, Error: %v",
fedKey.NamespaceKey(), err)
return err
}

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?

@luoMonkeyKing
Copy link
Contributor Author

luoMonkeyKing commented Jul 12, 2022

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

Yes.

case util.EndpointSliceKind:
if err := c.handleEndpointSliceEvent(fedKey); err != nil {
klog.Errorf("Failed to handle endpointSlice(%s) event, Error: %v",
fedKey.NamespaceKey(), err)
return err
}

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.

case util.EndpointSliceKind:
if err := c.handleEndpointSliceEvent(fedKey); err != nil {
klog.Errorf("Failed to handle endpointSlice(%s) event, Error: %v",
fedKey.NamespaceKey(), err)
return err
}

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

@GitHubxsy
Copy link
Contributor

GitHubxsy commented Jul 12, 2022

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

@luoMonkeyKing
Copy link
Contributor Author

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

@GitHubxsy
Copy link
Contributor

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.

@luoMonkeyKing
Copy link
Contributor Author

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

@GitHubxsy
Copy link
Contributor

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?

@XiShanYongYe-Chang
Copy link
Member

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

4 participants