Création de ressources IngressClassParameters, IngressClass et entrantes
Découvrez comment créer les ressources liées à l'entrée Kubernetes requises pour utiliser le contrôleur d'entrée natif OCI.
Après avoir installé le contrôleur d'entrée natif OCI (soit en tant que programme autonome, soit en tant qu'extension de cluster), vous devez créer un certain nombre de ressources Kubernetes différentes afin de l'utiliser :
- Ressource
IngressClassParameters
: cette ressource personnalisée indique les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI. - Ressource
IngressClass
: cette ressource est utilisée pour créer un équilibreur de charge. La ressourceIngressClass
fait référence à la ressourceIngressClassParameters
pour la forme de l'équilibreur de charge à créer et indique si le contrôleur d'entrée natif OCI est le contrôleur par défaut pour les ressourcesIngress
. - Ressource
Ingress
: cette ressource indique les règles permettant d'acheminer le trafic externe vers les services back-end.
Créez chacune des ressources à son tour en définissant la ressource dans un fichier .yaml comme indiqué dans cette rubrique, puis en exécutant la commande de création kubectl pour créer chaque ressource.
Créer une ressource IngressClassParameters
Utilisez la ressource IngressClassParameters
personnalisée afin d'indiquer les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
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>
où :
name: <icp-name>
est le nom de la nouvelle ressourceIngressClassParameters
.name: <ns-name>
est le nom de l'espace de noms dans lequel créer la ressourceIngressClassParameters
.compartmentId: "<compartment-ocid>"
est l'OCID du compartiment auquel le nouvel équilibreur de charge doit appartenir.subnetId: "<subnet-ocid>"
est l'OCID du sous-réseau de l'équilibreur de charge.loadBalancerName: "<lb-name>"
est le nom à attribuer au nouvel équilibreur de charge.maxBandwidthMbps: <max-bw>
correspond à la quantité supérieure de bande passante que le nouvel équilibreur de charge doit prendre en charge pendant la période de pic de charge globale.minBandwidthMbps: <min-bw>
correspond à la quantité de bande passante que le nouvel équilibreur de charge doit toujours disposer pour fournir une préparation instantanée aux charges globales.reservedPublicAddressId: <reserved-ip-ocid>
est éventuellement l'OCID d'une ressource d'adresse IP publique réservée existante à utiliser pour l'équilibreur de charge. Si vous n'indiquez pas d'adresse IP publique réservée, une adresse IP aléatoire est affectée à l'équilibreur de charge. Pour plus d'informations sur la création d'une adresse IP publique réservée, reportez-vous à Création d'une adresse IP publique réservée.
Par exemple :
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
Créez la ressource en saisissant kubectl create -f <filename>.yaml
Créer une ressource IngressClass
Utilisez la ressource IngressClass
pour associer une ressource Ingress
au contrôleur d'entrée natif OCI et à la ressource IngressClassParameters
. Vous pouvez également utiliser la ressource IngressClass
pour indiquer si le contrôleur d'entrée natif OCI est le contrôleur par défaut des ressources Ingress
.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
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>
où :
name: <ic-name>
est le nom de la nouvelle ressourceIngressClass
.ingressclass.kubernetes.io/is-default-class: "<true|false>"
indique siIngressClass
est la valeurIngressClass
par défaut à utiliser si une ressourceIngress
n'indique pas explicitement une valeuringressClassName
. Il est recommandé d'indiquer une valeur par défautIngressClass.
controller: oci.oraclecloud.com/native-ingress-controller
indique le contrôleur d'entrée natif OCI en tant que contrôleur d'entrée à utiliser.namespace: <ns-name>
est le nom de l'espace de noms contenant les paramètres à utiliser lorsque.spec.parameters.scope
est défini surNamespace
.name: <icp-name>
est le nom de la ressourceIngressClassParameters
qui indique les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI.
Par exemple :
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
Créez la ressource en saisissant kubectl create -f <filename>.yaml
Créer une ressource entrante
Utilisez la ressource Ingress
pour indiquer des règles afin d'acheminer le trafic externe vers les services back-end.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <i-name>
spec:
ingressClassName: <ic-name>
rules:
<ingress-rule>
name: <i-name>
est le nom de la ressourceIngress
.ingressClassName: <ic-name>
est le nom de la ressourceIngressClass
à utiliser. La ressourceIngressClass
indique à la fois le contrôleur d'entrée à utiliser et le nom de la ressourceIngressClassParameters
qui contient les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI. SiingressClassName
n'est pas spécifié, le paramètreIngressClass
par défaut du cluster est utilisé (IngressClass
avec l'annotationingressclass.kubernetes.io/is-default-class: "true"
).<ingress-rule>
est une règle comprenant éventuellement un hôte et/ou un (ou plusieurs) éléments de chemin. Chaque chemin possède un back-end (nom de service et numéro de port). Le contrôleur entrant achemine les demandes qui correspondent au nom d'hôte d'une règle (si indiqué) et au chemin d'accès au back-end associé. Lorsque vous indiquez un chemin dans une règle :- utilisez
pathType: Exact
pour indiquer que le chemin de la demande entrante doit correspondre exactement au chemin de la règle pour que la demande soit acheminée vers le back-end associé à la règle - utilisez
pathType:Prefix
pour indiquer que la partie de début du chemin de la demande entrante doit correspondre au chemin de la règle pour que la demande soit acheminée vers le back-end associé à la règle
Reportez-vous à Spécification de règles de routage pour le contrôleur entrant natif OCI.
- utilisez
Par exemple :
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
Créez la ressource en saisissant kubectl create -f <filename>.yaml