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

Stunner service External IP still pending #96

Closed
krajcikondra opened this issue Aug 11, 2023 · 5 comments
Closed

Stunner service External IP still pending #96

krajcikondra opened this issue Aug 11, 2023 · 5 comments
Labels
type: question Further information is requested

Comments

@krajcikondra
Copy link

Hi,

I try to install stunner. I finish installation and configuration but stunner pod still pending.

$ kubectl get pod -n stunner
NAME                       READY   STATUS    RESTARTS   AGE
stunner-7ff4875b47-6dtzt   0/2     Pending   0          12m
$ kubectl get service -n stunner
NAME      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
stunner   ClusterIP   10.245.91.141   <none>        3478/UDP   13m

There is some way how to debug?

@levaitamas
Copy link
Member

Hi @krajcikondra ,

This can happen when your k8ss cluster does not support LoadBalancer services on UDP ports.

First thing to check: Do you use self-managed or managed kubernetes? If it is managed, does the provider support UDP load balancers? If it is managed, extra annotations might be required, see #32

If it is self-managed, you can install a load balancer (e.g., MetalLB or in case of minikube, minikube tunnel). As a last resort you can use stunner via its NodePort.

Hope this helps your troubleshooting.

@levaitamas levaitamas added status: needs information type: question Further information is requested labels Aug 11, 2023
@levaitamas levaitamas changed the title Stunner service still pending Stunner service External IP still pending Aug 11, 2023
@krajcikondra
Copy link
Author

I have managed kubernetes cluster on digital ocean and UDP load balancers are supported. But for UDP load balancer is needed implementation of health check.

https://docs.digitalocean.com/products/kubernetes/how-to/configure-load-balancers/#health-checks

I cannot say I fully understand what exactly should I do. After add two lines from documentation is load balancer status still Pending.

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"gateway.networking.k8s.io/v1alpha2","kind":"Gateway","metadata":{"annotations":{},"name":"udp-gateway","namespace":"stunner"},"spec":{"gatewayClassName":"stunner-gatewayclass","listeners":[{"name":"udp-listener","port":3478,"protocol":"UDP"}]}}
    stunner.l7mp.io/related-gateway-name: stunner/udp-gateway
    # I added following two lines
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-port: "80"
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-protocol: "http"
  finalizers:
  - service.kubernetes.io/load-balancer-cleanup
  labels:
    app: stunner
    stunner.l7mp.io/owned-by: stunner
  name: udp-gateway
  namespace: stunner
  ownerReferences:
  - apiVersion: gateway.networking.k8s.io/v1alpha2
    kind: Gateway
    name: udp-gateway
    uid: f8481e46-507a-4c6d-8102-3c31f2ed4c45
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: 10.245.215.188
  clusterIPs:
  - 10.245.215.188
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: udp-gateway-udp
    nodePort: 31780
    port: 3478
    protocol: UDP
    targetPort: 3478
  selector:
    app: stunner
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

Can somebody help what is next step?

@levaitamas
Copy link
Member

Good news is that STUNner "supports" Digital Ocean.

This is the default config for the built-in STUNner healthcheck service:

service.beta.kubernetes.io/do-loadbalancer-healthcheck-port: "8086"
service.beta.kubernetes.io/do-loadbalancer-healthcheck-protocol: "http"
service.beta.kubernetes.io/do-loadbalancer-healthcheck-path: "/live"

Can you please try to apply these annotations instead of the default DO-recommended lines?

@levaitamas
Copy link
Member

Just to give more context, the annotations come from here: https://github.com/l7mp/stunner/blob/main/docs/GATEWAY.md#gateway

@krajcikondra
Copy link
Author

Thanks, now stunner is running :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants