Azure / container-service-for-azure-china

Container Service for Azure China
MIT License
422 stars 71 forks source link

Deploying nginx ingress #67

Open Oicho opened 2 years ago

Oicho commented 2 years ago

The standard images are not present. Following this official doc https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md I installed the ingress following

I tried installing the nginx ingress in china.

I did the following:

helm repo add stable https://mirror.azure.cn/kubernetes/charts/

helm search repo stable/nginx-ingress

NAME CHART VERSION APP VERSION DESCRIPTION

stable/nginx-ingress 1.41.3 v0.34.1 DEPRECATED! An nginx Ingress controller that us...

So the package noted on the doc are deprecated and indeed when you look at the mirror that last import was done on the 23th of December.

When you install

helm install --replace ingress stable/nginx-ingress --namespace kube-system -f internal-ingress-ip.yaml --set controller.replicaCount=2 --set controller.nodeSelector."kubernetes.io/os"=linux --set defaultBackend.nodeSelector."kubernetes.io/os"=linux --set controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os"=linux --set controller.image.registry=quay.azk8s.cn --set defaultBackend.image.repository=k8sgcr.azk8s.cn/defaultbackend-amd64

This log come up and the ingress do not work correctly

E0127 13:42:39.791165 7 main.go:122] Unexpected error searching IngressClass: ingressclasses.networking.k8s.io "nginx" is forbidden: User "system:serviceaccount:kube-system:ingress-nginx-ingress" cannot get resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope

I guess I can probably give manually access to the service account but it kinda defeat the entire purpose of using helm.

So I tried to use the default helm charts

nginx-ingress/ingress-nginx 4.0.16 1.1.1 Ingress controller for Kubernetes using NGINX a...

PS C:\Code> helm repo list

NAME URL

nginx-ingress https://kubernetes.github.io/ingress-nginx

Sadly it looks like the image are not present (I removed the @sha part since I know it can cause issues)

When I try this Failed to pull image "usgcr.azk8s.cn/ingress-nginx/controller:v0.49.1": rpc error: code = NotFound desc = failed to pull and unpack image "usgcr.azk8s.cn/ingress-nginx/controller:v0.49.1": failed to resolve reference "usgcr.azk8s.cn/ingress-nginx/controller:v0.49.1": usgcr.azk8s.cn/ingress-nginx/controller:v0.49.1: not found

So a few questions: What is the supported way to install an up to date nginx ingress on azure Kubernetes service in china? Is there a way to know what are the images publicly available on the mirrors ?

Best regards

andyzhangx commented 2 years ago

ingress-nginx has been moved to https://github.com/kubernetes/ingress-nginx, not sure whether original chart parameter works any more.

$ helm repo add ingress https://kubernetes.github.io/ingress-nginx
$ helm search repo nginx
NAME                            CHART VERSION   APP VERSION     DESCRIPTION
ingress/ingress-nginx           4.0.16          1.1.1           Ingress controller for Kubernetes using NGINX a...
karataliu commented 2 years ago

Can you refer to https://docs.azure.cn/en-us/aks/ingress-basic