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 recursoIngressClass
refere-se ao recursoIngressClassParameters
da 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 recursoIngressClassParameters
name: <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 recursoIngressClass
ingressclass.kubernetes.io/is-default-class: "<true|false>"
indica se esseIngressClass
é oIngressClass
padrão a ser usado se um recursoIngress
não especificar explicitamente umingressClassName
. Recomenda-se especificar umIngressClass.
padrãocontroller: oci.oraclecloud.com/native-ingress-controller
especifica 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 recursoIngressClassParameters
que 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 recursoIngressClass
a ser usado. O recursoIngressClass
especifica o controlador de entrada a ser usado e o nome do recursoIngressClassParameters
que contém detalhes do balanceador de carga do OCI a ser criado para o controlador de entrada nativo do OCI. SeingressClassName
não for especificado, oIngressClass
padrão do cluster será usado (oIngressClass
que 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: Exact
para 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:Prefix
para 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