Criando Recursos IngressClassParameters, IngressClass e de Entrada
Descubra como criar os recursos relacionados à entrada do Kubernetes necessários para usar o controlador de entrada nativo do OCI.
Depois de instalar o controlador de entrada nativo do OCI (como um programa independente ou como complemento de cluster), você precisa criar vários recursos diferentes do Kubernetes para usá-lo:
- Recurso
IngressClassParameters: Esse recurso personalizado especifica detalhes do balanceador de carga do OCI a ser criado para o controlador de entrada nativo do OCI. - Recurso
IngressClass: Este recurso é usado para criar um novo balanceador de carga. O recursoIngressClassrefere-se ao recursoIngressClassParametersda forma do balanceador de carga a ser criado e especifica se o controlador de entrada nativo do OCI é o controlador padrão para recursosIngress. - Recurso
Ingress: Esse recurso especifica regras para rotear o tráfego externo para serviços de backend.
Crie cada um dos recursos, por sua vez, definindo o recurso em um arquivo .yaml, conforme mostrado neste tópico, e, em seguida, executando o comando de criação kubectl para criar cada recurso.
Criar recurso IngressClassParameters
Use o recurso IngressClassParameters personalizado para especificar detalhes do balanceador de carga do OCI a ser criado para o controlador de entrada nativo do OCI.
Defina o recurso em um arquivo .yaml. Este é um exemplo 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>em que:
name: <icp-name>é o nome do novo recursoIngressClassParametersname: <ns-name>é o nome do namespace no qual será criado o novo recursoIngressClassParameters.compartmentId: "<compartment-ocid>"é o OCID do compartimento ao qual você deseja que o novo balanceador de carga pertença.subnetId: "<subnet-ocid>"é o OCID da sub-rede do balanceador de carga.loadBalancerName: "<lb-name>"é o nome a ser fornecido ao novo balanceador de carga.maxBandwidthMbps: <max-bw>é a quantidade superior de largura de banda que você deseja que o novo balanceador de carga suporte durante o tempo de pico de carga de trabalho.minBandwidthMbps: <min-bw>é a quantidade de largura de banda que você deseja que o novo balanceador de carga sempre tenha disponível para fornecer preparação instantânea para cargas de trabalho.reservedPublicAddressId: <reserved-ip-ocid>é opcionalmente o OCID de um recurso de endereço IP público reservado existente a ser usado para o balanceador de carga. Se você não especificar um endereço IP público reservado, o balanceador de carga receberá um endereço IP aleatório. Para obter mais informações sobre como criar um endereço IP público reservado, consulte Criando um IP Público Reservado.
Por exemplo:
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
Crie o recurso digitando kubectl create -f <filename>.yaml
Criar recurso IngressClass
Use o recurso IngressClass para associar um recurso Ingress ao controlador de entrada nativo do OCI e ao recurso IngressClassParameters. Você também pode usar o recurso IngressClass para especificar se o controlador de entrada nativo do OCI é o controlador padrão para recursos Ingress.
Defina o recurso em um arquivo .yaml. Este é um exemplo 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>em que:
name: <ic-name>é o nome do novo recursoIngressClassingressclass.kubernetes.io/is-default-class: "<true|false>"indica se esseIngressClassé oIngressClasspadrão a ser usado se um recursoIngressnão especificar explicitamente umingressClassName. Recomenda-se especificar umIngressClass.padrãocontroller: oci.oraclecloud.com/native-ingress-controllerespecifica o controlador de entrada nativo do OCI como o controlador de entrada a ser usadonamespace: <ns-name>é o nome do namespace que contém os parâmetros a serem usados quando.spec.parameters.scopeé definido comoNamespace.name: <icp-name>é o nome do recursoIngressClassParametersque especifica detalhes do balanceador de carga do OCI a ser criado para o controlador de entrada nativo do OCI.
Por exemplo:
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
Crie o recurso digitando kubectl create -f <filename>.yaml
Criar recurso de Entrada
Use o recurso Ingress para especificar regras para rotear o tráfego externo para serviços de backend.
Defina o recurso em um arquivo .yaml. Este é um exemplo mínimo:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <i-name>
spec:
ingressClassName: <ic-name>
rules:
<ingress-rule>
name: <i-name>é o nome do recursoIngress.ingressClassName: <ic-name>é o nome do recursoIngressClassa ser usado. O recursoIngressClassespecifica o controlador de entrada a ser usado e o nome do recursoIngressClassParametersque contém detalhes do balanceador de carga do OCI a ser criado para o controlador de entrada nativo do OCI. SeingressClassNamenão for especificado, oIngressClasspadrão do cluster será usado (oIngressClassque tem a anotaçãoingressclass.kubernetes.io/is-default-class: "true").<ingress-rule>é uma regra que inclui opcionalmente um host e/ou um (ou mais) elementos de caminho. Cada caminho tem um backend (um nome de serviço e um número de porta). O controlador de entrada roteia solicitações que correspondem ao nome de host de uma regra (se especificado) e ao caminho para o backend associado. Ao especificar um caminho em uma regra:- use
pathType: Exactpara indicar que o caminho da solicitação de entrada deve corresponder exatamente ao caminho na regra para que a solicitação seja roteada para o backend associado à regra - use
pathType:Prefixpara indicar que a parte inicial do caminho da solicitação de entrada deve corresponder ao caminho na regra para que a solicitação seja roteada para o backend associado à regra
Consulte Especificando Regras de Roteamento para o Controlador de Entrada Nativo do OCI.
- use
Por exemplo:
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
Crie o recurso digitando kubectl create -f <filename>.yaml