k8s中ingress的ingressclass使用
IngressClass 是一种 API 资源对象,用于定义和区分多个 Ingress 控制器的行为。通过定义 IngressClass 资源,你可以指定 Ingress 资源应由哪个 Ingress 控制器处理。
要通过注解(annotation)添加 IngressClass,你需要在 Ingress 资源上添加一个特定的注解来指定 IngressClass 的名称。这通常是通过在 Ingress 资源的元数据部分进行设置的
查看ingress控制器 指定的ingressclass (--ingress-class=nginx-hello)
kubectl edit deploy -n ingress-nginx ingress-nginx-controller
spec:
containers:
- args:
- /nginx-ingress-controller
- --election-id=ingress-controller-leader
- --ingress-class=nginx-hello
- --configmap=ingress-nginx/ingress-nginx-controller
- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key
查看ingressclass
kubectl get ingresses --all-namespaces -o jsonpath="{.items[*].metadata.annotations.kubernetes\.io/ingress\.class}"
ingress 添加指定的ingress.class,表示使用那个ingress控制器处理路由流量,下面的ingressClassName为显示信息
kubectl edit ingrss 服务ingress名称
metadata:
annotations:
kubernetes.io/ingress.class: nginx-hello
spec:
ingressClassName: nginx-hello