Skip to content

AKS Downstream Cluster not Available with Websockets failing

Article Number: 000020767

Environment

Rancher 2.6.x
AKS 1.22+

Situation

After upgrading AKS to version 1.22+ users may experience a situation where the Downstream clusters show as unavailable on Rancher.
Testing the Websocket using these instructions will show the following error:

Bad Request
{"baseType":"error","code":"ServerError","message":"websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header","status":400,"type":"error"}

Cause

Kubernetes version 1.22 deprecated versions of the Ingress APIs in favor of the stable networking.k8s.io/v1 API. That leads to this scenario, where we update the controller.watchIngressWithoutClass tag.

Resolution

Update the Kubernetes Ingress NGINX with the tag --set controller.watchIngressWithoutClass=true:

helm upgrade --install \
  ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --set controller.service.type=LoadBalancer \
  --version 4.0.18 \
  --create-namespace \
  --set controller.watchIngressWithoutClass=true

Alternatively, on Rancher 2.6.7 onward, you can add the class name on the helm install/upgrade steps :

--set ingress.ingressClassName=nginx