El formato de nombre de dominio predeterminado para un Knative Service es {route}.{namespace}.{default-example.com}, donde {default-example.com} es el sufijo de dominio predeterminado, que generalmente es example.com. ACS admiten dominios personalizados para una configuración de rutas más flexible.
Puede personalizar los dominios de dos maneras:
Modifique el ConfigMap para personalizar el dominio de forma global para todos los Knative Services.
Use la anotación
knative.aliyun.com/serving-ingresspara configurar un dominio personalizado rápidamente para un Knative Service específico.
Requisitos previos
Cuenta con deployed Knative en el clúster ACS.
Tiene un nombre de dominio registrado. Para obtener más información, consulte Alibaba Cloud Domains.
Configure un dominio personalizado global
Para aplicar un sufijo de dominio común a todos los Knative Services, siga estos pasos.
-
Ejecute el comando que se muestra a continuación y edite el objeto ConfigMap
config-domainen el espacio de nombresknative-serving.kubectl edit cm config-domain --namespace knative-serving -
Modifique el archivo de configuración.
Cambie el nombre de dominio predeterminado
example.comen el archivo de configuración por un dominio personalizado y guarde la configuración. En este ejemplo, establezca el dominio personalizado enmydomain.apiVersion: v1 kind: ConfigMap metadata: name: config-domain namespace: knative-serving data: mydomain.com: "" # Replace example.com with mydomain.com. In a real-world scenario, replace this with your own service domain. -
Ejecute el comando que se muestra a continuación y compruebe que el nuevo dominio se aplica:
# Replace helloworld-go with the name of your Knative Service. kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'Salida esperada:
helloworld-go.default.mydomain.comEsta salida confirma que se aplicó el dominio personalizado.
Actualice los registros DNS de su dominio para que apunten a la dirección IP del gateway de Knative.
-
Ejecute el comando que se muestra a continuación para acceder al Knative Service con el dominio personalizado:
curl http://helloworld-go.default.mydomain.comSalida esperada:
Hello Knative!Esta salida confirma que se puede acceder al Knative Service a través del dominio personalizado.
Configure un dominio y una ruta por servicio
Para definir un nombre de dominio y una ruta específicos para un Knative Service, use la anotación knative.aliyun.com/serving-ingress y especifique un nombre de dominio y una ruta personalizados de manera directa. Por ejemplo, knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee especifica el nombre de dominio cafe.mydomain.com y la ruta /coffee.
Ejemplo de dominio personalizado
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: cafe.mydomain.com
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Ejemplo de dominio comodín
Separe varios dominios con una coma.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: "*.mydomain.com"
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Ejemplo de ruta única
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Ejemplo de varias rutas
Separe varias rutas con una coma.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee,cafe.mydomain.com/tea
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Reescriba una ruta
El gateway ALB admite la reescritura de rutas. Puede reescribir la ruta de un Knative Service configurando la anotación alb.ingress.kubernetes.io/rewrite-target: . A continuación se muestra un ejemplo de código.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: cafe.mydomain.com/api/coffee
alb.ingress.kubernetes.io/rewrite-target: /coffee
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Configure un dominio comodín universal
Para definir un dominio comodín para un Knative Service, establezca el valor de la anotación knative.aliyun.com/serving-ingress en /. Por ejemplo, knative.aliyun.com/serving-ingress: / indica un dominio comodín completo. A continuación se muestra un ejemplo.
Solo los gateways ALB son compatibles.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: coffee-mydomain
annotations:
knative.aliyun.com/serving-ingress: "/"
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8