Creación de recursos de entrada, IngressClassParameters y IngressClass
Descubra cómo crear los recursos relacionados con la entrada de Kubernetes necesarios para utilizar el controlador de entrada nativo de OCI.
Una vez instalado el controlador de entrada nativo de OCI (ya sea como programa autónomo o como complemento de cluster), debe crear una serie de recursos de Kubernetes diferentes para utilizarlo:
- Recurso
IngressClassParameters
: este recurso personalizado especifica los detalles del equilibrador de carga de OCI que se crearán para el controlador de entrada nativo de OCI. - Recurso
IngressClass
: este recurso se utiliza para crear un nuevo equilibrador de carga. El recursoIngressClass
hace referencia al recursoIngressClassParameters
para la unidad del equilibrador de carga que se va a crear y especifica si el controlador de entrada nativo de OCI es el controlador por defecto para los recursosIngress
. - Recurso
Ingress
: este recurso especifica reglas para enrutar el tráfico externo a los servicios de backend.
Cree cada uno de los recursos a su vez definiendo el recurso en un archivo .yaml como se muestra en este tema y, a continuación, ejecutando el comando create de kubectl para crear cada recurso.
Crear recurso IngressClassParameters
Utilice el recurso IngressClassParameters
personalizado para especificar los detalles del equilibrador de carga de OCI que se van a crear para el controlador de entrada nativo de OCI.
Defina el recurso en un archivo .yaml. Este es un ejemplo mínimo:
apiVersion: "ingress.oraclecloud.com/v1beta1"
kind: IngressClassParameters
metadata:
name: <icp-name>
namespace: <ns-name>
spec:
compartmentId: "<compartment-ocid>"
subnetId: "<subnet-ocid>"
loadBalancerName: "<lb-name>"
isPrivate: false
maxBandwidthMbps: <max-bw>
minBandwidthMbps: <min-bw>
reservedPublicAddressId: <reserved-ip-ocid>
donde:
name: <icp-name>
es el nombre del nuevo recursoIngressClassParameters
name: <ns-name>
es el nombre del espacio de nombres en el que se va a crear el nuevo recursoIngressClassParameters
.compartmentId: "<compartment-ocid>"
es el OCID del compartimento al que desea que pertenezca el nuevo equilibrador de carga.subnetId: "<subnet-ocid>"
es el OCID de la subred del equilibrador de carga.loadBalancerName: "<lb-name>"
es el nombre que debe proporcionar al nuevo equilibrador de carga.maxBandwidthMbps: <max-bw>
es la cantidad superior de ancho de banda que desea que soporte el nuevo equilibrador de carga durante el tiempo de máxima carga de trabajo.minBandwidthMbps: <min-bw>
es la cantidad de ancho de banda que desea que el nuevo equilibrador de carga tenga siempre disponible para proporcionar una preparación instantánea para las cargas de trabajo.reservedPublicAddressId: <reserved-ip-ocid>
es opcionalmente el OCID de un recurso de dirección IP pública reservada existente que se utilizará para el equilibrador de carga. Si no especifica una dirección IP pública reservada, al equilibrador de carga se le asigna una dirección IP aleatoria. Para obtener más información sobre la creación de una dirección IP pública reservada, consulte Creación de una IP pública reservada.
Por ejemplo:
apiVersion: "ingress.oraclecloud.com/v1beta1"
kind: IngressClassParameters
metadata:
name: native-ic-params
namespace: acme-namespace
spec:
compartmentId: "ocid1.compartment.oc1..aaaaaaaa______ddq"
subnetId: "ocid1.subnet.oc1.iad.aaaaaaaa______dba"
loadBalancerName: "native-ic-lb"
isPrivate: false
maxBandwidthMbps: 400
minBandwidthMbps: 100
Cree el recurso introduciendo kubectl create -f <filename>.yaml
Crear recurso IngressClass
Utilice el recurso IngressClass
para asociar un recurso Ingress
al controlador de entrada nativo de OCI y al recurso IngressClassParameters
. También puede utilizar el recurso IngressClass
para especificar si el controlador de entrada nativo de OCI es el controlador por defecto para los recursos Ingress
.
Defina el recurso en un archivo .yaml. Este es un ejemplo mínimo:
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: <ic-name>
annotations:
ingressclass.kubernetes.io/is-default-class: "<true|false>"
spec:
controller: oci.oraclecloud.com/native-ingress-controller
parameters:
scope: Namespace
namespace: <ns-name>
apiGroup: ingress.oraclecloud.com
kind: ingressclassparameters
name: <icp-name>
donde:
name: <ic-name>
es el nombre del nuevo recursoIngressClass
ingressclass.kubernetes.io/is-default-class: "<true|false>"
indica si esteIngressClass
es el valor por defectoIngressClass
que se utilizará si un recursoIngress
no especifica explícitamente uningressClassName
. Se recomienda especificar un valor por defectoIngressClass.
controller: oci.oraclecloud.com/native-ingress-controller
especifica el controlador de entrada nativo de OCI como controlador de entrada que se va a utilizarnamespace: <ns-name>
es el nombre del espacio de nombres que contiene los parámetros que se van a utilizar cuando.spec.parameters.scope
se define enNamespace
.name: <icp-name>
es el nombre del recursoIngressClassParameters
que especifica los detalles del equilibrador de carga de OCI que se van a crear para el controlador de entrada nativo de OCI.
Por ejemplo:
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: native-ic-ingress-class
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: oci.oraclecloud.com/native-ingress-controller
parameters:
scope: Namespace
namespace: acme-namespace
apiGroup: ingress.oraclecloud.com
kind: ingressclassparameters
name: native-ic-params
Cree el recurso introduciendo kubectl create -f <filename>.yaml
Crear recurso de entrada
Utilice el recurso Ingress
para especificar reglas para enrutar el tráfico externo a los servicios de backend.
Defina el recurso en un archivo .yaml. Este es un ejemplo mínimo:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <i-name>
spec:
ingressClassName: <ic-name>
rules:
<ingress-rule>
name: <i-name>
es el nombre del recursoIngress
.ingressClassName: <ic-name>
es el nombre del recursoIngressClass
que se va a utilizar. El recursoIngressClass
especifica el controlador de entrada que se va a utilizar y el nombre del recursoIngressClassParameters
que contiene detalles del equilibrador de carga de OCI que se va a crear para el controlador de entrada nativo de OCI. Si no se especificaingressClassName
, se utiliza el valor por defectoIngressClass
del cluster (elIngressClass
que tiene la anotacióningressclass.kubernetes.io/is-default-class: "true"
).<ingress-rule>
es una regla que incluye opcionalmente un host y/o uno (o más) elementos de ruta. Cada ruta tiene un backend (un nombre de servicio y un número de puerto). El controlador de entrada direcciona las solicitudes que coinciden con el nombre de host de una regla (si se especifica) y la ruta al backend asociado. Al especificar una ruta de acceso en una regla:- utilice
pathType: Exact
para indicar que la ruta de acceso de solicitud entrante debe coincidir exactamente con la ruta de acceso de la regla para que la solicitud se direccione al backend asociado de la regla - utilice
pathType:Prefix
para indicar que la parte inicial de la ruta de acceso de solicitud entrante debe coincidir con la ruta de acceso de la regla para que la solicitud se direccione al backend asociado de la regla
Consulte Especificación de reglas de ruta para el controlador de entrada nativo de OCI.
- utilice
Por ejemplo:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: native-ic-ingress
spec:
ingressClassName: native-ic-ingress-class
rules:
- host: "foo.bar.com"
http:
paths:
- pathType: Exact
path: "/testecho1"
backend:
service:
name: testecho1
port:
number: 80
Cree el recurso introduciendo kubectl create -f <filename>.yaml