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

Service access fails when using MultiClusterService #6146

Open
fourhu opened this issue Feb 21, 2025 · 1 comment
Open

Service access fails when using MultiClusterService #6146

fourhu opened this issue Feb 21, 2025 · 1 comment
Labels
kind/question Indicates an issue that is a support question.

Comments

@fourhu
Copy link

fourhu commented Feb 21, 2025

Please provide an in-depth description of the question you have:

I followed this docs to verify MultiClusterService, but it fails at the end when I use the curl pod to access the nginx service.

~ $ curl http://nginx.default
curl: (7) Failed to connect to nginx.default port 80 after 1007 ms: Could not connect to server

resource binding:

╰─$ kubectl --kubeconfig=./karmada-apiserver.config get rb -A
NAMESPACE   NAME               SCHEDULED   FULLYAPPLIED   AGE
default     curl-deployment    True        True           2m59s
default     nginx-deployment   True        True           2m59s
default     nginx-service      True        True           2m59s

work:

╰─$ kubectl --kubeconfig=./karmada-apiserver.config get work -A
NAMESPACE                        NAME                                             WORKLOAD-KIND              APPLIED   AGE
karmada-es-ai-dx-10-122-194-90   karmada-impersonator-7cbb6bd5c9                  ClusterRole                True      4h46m
karmada-es-ai-dx-10-122-194-90   karmada-impersonator-84f8c8f8c6                  ClusterRoleBinding         True      4h46m
karmada-es-ai-dx-10-122-194-90   nginx-64b7849b5                                  Service                    True      3m36s
karmada-es-ai-dx-10-122-194-90   nginx-687f7fb96f                                 Deployment                 True      3m36s
karmada-es-ai-dx-10-122-194-90   nginx-747889f6c4                                 MultiClusterService                  3m36s
karmada-es-ai-dx-10-122-194-90   serviceexports.multicluster.x-k8s.io-fd9cff546   CustomResourceDefinition   False     4h40m
karmada-es-ai-dx-10-122-194-90   serviceimports.multicluster.x-k8s.io-956bf6dbf   CustomResourceDefinition   False     4h40m
karmada-es-ai-dx-10-122-194-90   submariner-k8s-broker-68b9b9c59d                 Namespace                  True      4h46m
karmada-es-ai-dx-10-122-194-90   submariner-operator-555c4f56bd                   Namespace                  True      4h46m
karmada-es-ai-dx-172-16-10-55    curl-5774b76457                                  Deployment                 True      3m36s
karmada-es-ai-dx-172-16-10-55    karmada-impersonator-7cbb6bd5c9                  ClusterRole                True      18h
karmada-es-ai-dx-172-16-10-55    karmada-impersonator-84f8c8f8c6                  ClusterRoleBinding         True      18h
karmada-es-ai-dx-172-16-10-55    nginx-64b7849b5                                  Service                    True      3m36s
karmada-es-ai-dx-172-16-10-55    serviceexports.multicluster.x-k8s.io-fd9cff546   CustomResourceDefinition   False     18h
karmada-es-ai-dx-172-16-10-55    serviceimports.multicluster.x-k8s.io-956bf6dbf   CustomResourceDefinition   False     18h
karmada-es-ai-dx-172-16-10-55    submariner-k8s-broker-68b9b9c59d                 Namespace                  False     18h
karmada-es-ai-dx-172-16-10-55    submariner-operator-555c4f56bd                   Namespace                  False     18h

endpointslice & svc:
member1:

# kubectl get endpointslice -A
NAMESPACE             NAME                                          ADDRESSTYPE   PORTS        ENDPOINTS               AGE
default               kubernetes                                    IPv4          6443         10.122.194.90           28h
default               nginx-xb652                                   IPv4          80           10.46.0.83,10.46.0.82   4m24s
kube-system           kube-dns-nd5lv                                IPv4          9153,53,53   10.46.0.79,10.46.0.78   28h
submariner-operator   submariner-gateway-metrics-gcd7l              IPv4          8080         10.46.0.52              4h44m
submariner-operator   submariner-lighthouse-agent-metrics-4dtwt     IPv4          8082         10.46.0.54              4h44m
submariner-operator   submariner-lighthouse-coredns-5hcws           IPv4          53,53        10.46.0.65,10.46.0.66   4h44m
submariner-operator   submariner-lighthouse-coredns-metrics-4tlrx   IPv4          9153         10.46.0.65,10.46.0.66   4h44m
submariner-operator   submariner-operator-metrics-rgpwk             IPv4          8383         10.46.0.48              20h
# kubectl get svc -A
NAMESPACE             NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
default               kubernetes                              ClusterIP   10.47.0.1       <none>        443/TCP                  28h
default               nginx                                   ClusterIP   10.47.184.130   <none>        80/TCP                   4m28s
kube-system           kube-dns                                ClusterIP   10.47.0.10      <none>        53/UDP,53/TCP,9153/TCP   28h
submariner-operator   submariner-gateway-metrics              ClusterIP   10.47.92.248    <none>        8080/TCP                 4h45m
submariner-operator   submariner-lighthouse-agent-metrics     ClusterIP   10.47.55.190    <none>        8082/TCP                 4h44m
submariner-operator   submariner-lighthouse-coredns           ClusterIP   10.47.1.56      <none>        53/UDP,53/TCP            4h44m
submariner-operator   submariner-lighthouse-coredns-metrics   ClusterIP   10.47.147.238   <none>        9153/TCP                 4h44m
submariner-operator   submariner-operator-metrics             ClusterIP   10.47.155.149   <none>        8383/TCP                 20h

member2:

╰─$ kubectl get endpointslice
NAME          ADDRESSTYPE   PORTS     ENDPOINTS      AGE
kubernetes    IPv4          6443      172.16.10.55   458d
nginx-jlfrm   IPv4          <unset>   <unset>        6m4s
╰─$ kubectl get endpointslice -n kube-system | grep dns
kube-dns-cs5lb                     IPv4          9153,53,53         10.42.1.139,10.42.0.166     458d
kube-dns-upstream-pt9jq            IPv4          53,53              10.42.1.139,10.42.0.166     36d
node-local-dns-x4plj               IPv4          9253               172.16.10.55,172.16.10.18   36d
╰─$ kubectl -n submariner-operator get endpointslice
NAME                                          ADDRESSTYPE   PORTS   ENDPOINTS                 AGE
submariner-gateway-metrics-fnrr2              IPv4          8080    10.42.1.97                14h
submariner-lighthouse-agent-metrics-tcpr4     IPv4          8082    10.42.0.132               14h
submariner-lighthouse-coredns-metrics-fztjh   IPv4          9153    10.42.1.141,10.42.0.168   14h
submariner-lighthouse-coredns-nbfgh           IPv4          53,53   10.42.1.141,10.42.0.168   14h
submariner-operator-metrics-5hct8             IPv4          8383    10.42.1.99                20h

╰─$ kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.43.0.1     <none>        443/TCP   458d
nginx        ClusterIP   10.43.80.64   <none>        80/TCP    6m57s
╰─$ kubectl -n kube-system get svc | grep dns                                                                                                                                   1 ↵
kube-dns                     ClusterIP   10.43.0.10     <none>        53/UDP,53/TCP,9153/TCP          458d
kube-dns-upstream            ClusterIP   10.43.27.151   <none>        53/UDP,53/TCP                   36d
node-local-dns               ClusterIP   None           <none>        9253/TCP                        36d
╰─$ kubectl -n submariner-operator get svc
NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
submariner-gateway-metrics              ClusterIP   10.43.4.50      <none>        8080/TCP        14h
submariner-lighthouse-agent-metrics     ClusterIP   10.43.53.91     <none>        8082/TCP        14h
submariner-lighthouse-coredns           ClusterIP   10.43.99.76     <none>        53/UDP,53/TCP   14h
submariner-lighthouse-coredns-metrics   ClusterIP   10.43.143.91    <none>        9153/TCP        14h
submariner-operator-metrics             ClusterIP   10.43.153.109   <none>        8383/TCP        20h

What do you think about this question?:

Environment:

  • Karmada version: v1.12.3
  • Kubernetes version: v1.27.12
  • Others:
@fourhu fourhu added the kind/question Indicates an issue that is a support question. label Feb 21, 2025
@XiShanYongYe-Chang
Copy link
Member

Hi @fourhu, thanks for your response.

According to the information you provided, EndpointSlice resources on your source cluster are not collected on the karmada control plane.

Image

You can check whether your controller has error handling.

Normally, EndpointSlice resources are collected on the control plane and then distributed to the target cluster group for service discovery.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/question Indicates an issue that is a support question.
Projects
None yet
Development

No branches or pull requests

2 participants