Voraussetzungen für das Deployment des OCI Native Ingress Controller als Cluster-Add-on
Erfahren Sie, was Sie tun müssen, bevor Sie den nativen OCI-Ingress-Controller als Cluster-Add-on bereitstellen können, um eingehenden Traffic zu laden und an Service-Pods weiterzuleiten, die auf Worker-Knoten in einem Kubernetes-Cluster ausgeführt werden.
Vor der Bereitstellung des nativen OCI-Ingress-Controllers als Cluster-Add-on:
- Erstellen Sie ein neues Cluster, oder identifizieren Sie ein vorhandenes Cluster mit nativem VCN-Podnetzwerk oder Flannel-Overlay als Netzwerktyp. Das Cluster kann ein erweitertes Cluster oder ein einfaches Cluster sein. Das Cluster muss Kubernetes-Version 1.28 oder höher ausführen. Siehe Cluster erstellen.
- Konfigurieren Sie Load-Balancer-Sicherheitsregeln, um eingehenden und ausgehenden Traffic zum und vom Subnetz des Load Balancers zuzulassen. Siehe Load-Balancer-Subnetzkonfiguration.
- Richten Sie einen Instanz-Principal, einen Benutzer-Principal oder einen Workload-Identitäts-Principal ein, damit der native OCI-Ingress-Controller auf andere Oracle Cloud Infrastructure-Services und -Ressourcen zugreifen kann. Siehe Instanz-Principal, Benutzer-Principal oder Workload-Identitäts-Principal einrichten, um Zugriff auf OCI-Services und -Ressourcen zu ermöglichen.
- Erteilen Sie dem Instanz-Principal, dem Benutzer-Principal oder dem Workload-Identitäts-Principal Berechtigungen, damit der native OCI-Ingress-Controller auf Ressourcen zugreifen kann. Siehe Berechtigungen für das OCI Native Ingress Controller-Cluster-Add-on erteilen.
- Installieren Sie cert-manager, um die TLS-Zertifikate zu generieren und zu verwalten, die vom Webhook-Server benötigt werden, der die Pod Readiness Gates-Funktion unterstützt. Siehe cert-manager installieren.
Instanz-Principal, Benutzer-Principal oder Workload Identity Principal einrichten, um den Zugriff auf OCI-Services und -Ressourcen zu ermöglichen
Um einen Load Balancer zu erstellen und eingehenden Traffic weiterzuleiten, führt der native OCI-Ingress-Controller, unabhängig davon, ob er als Standalone-Programm oder als Cluster-Add-on installiert ist, Aktionen für andere Oracle Cloud Infrastructure-Serviceressourcen aus (einschließlich Load-Balancer-Service und Certificates-Service). Um diese Aktionen für OCI-Serviceressourcen auszuführen, verwendet der native OCI-Ingress-Controller-Pod die Zugangsdaten eines autorisierten Akteurs (oder Principals). Sie können derzeit die folgenden Principal-Typen einrichten, damit der native OCI-Ingress-Controller Aktionen mit OCI-Serviceressourcen ausführen kann:
- Instanz-Principal: Der native OCI-Ingress-Controller verwendet die Identität der Instanz, auf der er ausgeführt wird. Siehe Instanz-Principals zum Aktivieren des Zugriffs auf OCI-Services und -Ressourcen verwenden.
- Benutzer-Principal: Der native OCI-Ingress-Controller verwendet die Identität eines OCI-Benutzers. Siehe Benutzer-Principals zum Aktivieren des Zugriffs auf OCI-Services und -Ressourcen verwenden.
- Workload Identity Principal: Der native OCI-Ingress-Controller verwendet die Identität einer Workload-Ressource, die auf einem Kubernetes-Cluster ausgeführt wird. Siehe Workload-Identitäts-Principals verwenden, um den Zugriff auf OCI-Services und -Ressourcen zu ermöglichen.
Hinweis:
- Die Verwendung von Instanz-Principals, damit der native OCI-Ingress-Controller auf OCI-Services und -Ressourcen zugreifen kann, wird in Clustern mit virtuellen Knoten nicht unterstützt.
- Die Verwendung von Workload-Identitäts-Principals, damit der native OCI-Ingress-Controller auf OCI-Services und -Ressourcen zugreifen kann, wird mit erweiterten Clustern unterstützt, jedoch nicht mit einfachen Clustern.
Zugriff auf OCI-Services und -Ressourcen mit Instanz-Principals aktivieren
Sie können einen Instanz-Principal einrichten, damit der native OCI-Ingress-Controller Aktionen mit OCI-Serviceressourcen ausführen kann. Beachten Sie, dass Sie Instanz-Principals nur mit verwalteten Knoten verwenden können.
So richten Sie einen Instanz-Principal ein:
- Erstellen Sie eine neue dynamische Gruppe mit den Compute-Instanzen, die Worker-Knoten des Clusters hosten:
- Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Domains aus. Wählen Sie unter Identitätsdomain die Option Dynamische Gruppen aus.
-
Wählen Sie das Compartment aus, zu dem die Compute-Instanzen gehören.
-
Befolgen Sie die Anweisungen unter So erstellen Sie eine dynamische Gruppe, und geben Sie der dynamischen Gruppe einen Namen (z.B.
acme-oke-native-ingress-controller-dyn-grp
). - Geben Sie eine Regel mit den Compute-Instanzen im Compartment im folgenden Format ein:
ALL {instance.compartment.id = '<compartment-ocid>'}
wobei
<compartment-ocid>
die OCID des Compartments ist, in dem Clusterknotenpools erstellt werden.Beispiel:
ALL {instance.compartment.id = 'ocid1.compartment.oc1..aaaaaaaa23______smwa'}
- Klicken Sie auf Dynamische Gruppe erstellen.
Bevor Sie den nativen OCI-Ingress-Controller bereitstellen, gehen Sie wie folgt vor:
-
Erteilen Sie Berechtigungen für die Instanz, auf der der native OCI-Ingress-Controller über die dynamische Gruppe ausgeführt wird. Siehe Berechtigungen für das OCI Native Ingress Controller-Cluster-Add-on erteilen.
-
Geben Sie an, dass Sie Instanz-Principals mit dem OCI-Add-on für den nativen Ingress-Controller verwenden möchten, indem Sie das Konfigurationsargument
authType
aufinstance
setzen. Beispiel:{ "key": "authType", "value": "instance" }
Siehe Add-on für OCI Native Ingress Controller bereitstellen
Mit Benutzer-Principals den Zugriff auf OCI-Services und -Ressourcen aktivieren
Sie können einen Benutzer-Principal einrichten, damit der native OCI-Ingress-Controller Aktionen mit OCI-Serviceressourcen ausführen kann.
So richten Sie einen Benutzer-Principal ein:
- Wenn noch kein geeigneter Benutzer vorhanden ist, erstellen Sie einen Benutzer in IAM (siehe So erstellen Sie einen Benutzer).
- Wenn noch keine geeignete Gruppe vorhanden ist, erstellen Sie eine Gruppe in IAM (siehe So erstellen Sie eine Gruppe).
- Fügen Sie den Benutzer der Gruppe hinzu (siehe So fügen Sie einer Gruppe einen Benutzer hinzu).
-
Rufen Sie diese Elemente ab:
- RSA-Schlüsselpaar im PEM-Format (mindestens 2048 Bit). Siehe So generieren Sie einen API-Signaturschlüssel.
- Fingerprint des Public Key. Siehe So rufen Sie den Fingerprint des Schlüssels ab.
- OCID des Mandanten und des Benutzers. Siehe Hier rufen Sie die OCID des Mandanten und die OCID des Benutzers ab.
- Laden Sie den Public Key aus dem Schlüsselpaar in der Konsole hoch. Siehe So laden Sie den Public Key hoch.
- Erstellen Sie eine Konfigurationsdatei als .yaml-Datei mit Zugangsdateninformationen im folgenden Format:
auth: region: <region-identifier> passphrase: <passphrase> user: <user-ocid> fingerprint: <fingerprint> tenancy: <tenancy-ocid>
Hierbei gilt:region: <region-identifier>
ist die Region, in der sich das Cluster befindet. Beispiel:us-ashburn-1
passphrase: <passphrase>
gibt die Passphrase für den Schlüssel an, wenn er verschlüsselt ist.user: <user-ocid>
ist die OCID des Benutzers, den der native Ingress-Controller von OCI verwenden soll.fingerprint: <fingerprint>
ist der Fingerprint des Public Keys.tenancy: <tenancy-ocid>
ist die OCID des Mandanten, der das Cluster enthält.
Beispiel:
auth: region: us-ashburn-1 passphrase: examplepass user: ocid1.user.oc1..aaaaaaaa_example fingerprint: 67:d9:74:4b:21:example tenancy: ocid1.tenancy.oc1..aaaaaaaa_example
- Erstellen Sie eine Kubernetes-Secret-Ressource im Cluster, indem Sie Folgendes eingeben:
kubectl create secret generic <secret-name> \ --from-file=config=<config-file>.yaml \ --from-file=private-key=<private-key-file-path>.pem \ --namespace <namespace>
Hierbei gilt:<secret-name>
gibt den Namen des zu erstellenden Secrets an. Beispiel:oci-config
--from-file=config=<config-file>.yaml
gibt den Namen und Pfad der .yaml-Datei mit den zuvor erstellten Zugangsdateninformationen an. Beispiel:user-auth-config.yaml
--from-file=private-key=./oci/oci_api_key.pem
gibt den Namen und Pfad der heruntergeladenen Private-Key-Datei an. Beispiel:./oci/oci_api_key.pem
--namespace <namespace>
gibt den Namespace an, der den nativen OCI-Ingress-Controller enthält.
Beispiel:
kubectl create secret generic oci-config \ --from-file=config=user-auth-config.yaml \ --from-file=private-key=./oci/oci_api_key.pem \ --namespace acme-namespace
Bevor Sie den nativen OCI-Ingress-Controller bereitstellen, gehen Sie wie folgt vor:
- Erteilen Sie dem Benutzer Berechtigungen über die Gruppe, zu der der Benutzer gehört. Siehe Berechtigungen für das OCI Native Ingress Controller-Cluster-Add-on erteilen.
-
Geben Sie an, dass Sie Benutzer-Principals mit dem nativen OCI-Ingress-Controller-Add-on verwenden möchten, indem Sie die folgenden Konfigurationsargumente festlegen:
- Setzen Sie
authType
aufuser
. - Setzen Sie
authSecretName
auf den Namen des zuvor erstellten Kubernetes-Secrets.
Beispiel:
{ "key": "authType", "value": "user" }, { "key": "authSecretName", "value": "oci-config" }
Siehe Add-on für OCI Native Ingress Controller bereitstellen
- Setzen Sie
Workload Identity Principals verwenden, um Zugriff auf OCI-Services und -Ressourcen zu ermöglichen
Sie können einen Workload-Identitäts-Principal einrichten, damit der native OCI-Ingress-Controller Aktionen mit OCI-Serviceressourcen ausführen kann. Beachten Sie, dass Sie nur Workload-Identity Principals mit erweiterten Clustern verwenden können.
So richten Sie einen Workload Identity Principal ein:
- Rufen Sie die OCID des Clusters ab (z.B. mit der Registerkarte Clusterdetails in der Konsole).
Bevor Sie den nativen OCI-Ingress-Controller bereitstellen, gehen Sie wie folgt vor:
- Erteilen Sie Berechtigungen für die Workload-Identität des nativen OCI-Ingress-Controllers. Siehe Berechtigungen für das OCI Native Ingress Controller-Cluster-Add-on erteilen.
- Geben Sie an, dass Sie Workload-Identitäts-Principals mit dem OCI-Add-on für den nativen Ingress-Controller verwenden möchten, indem Sie das Konfigurationsargument
authType
aufworkloadIdentity
setzen. Beispiel:{ "key": "authType", "value": "workloadIdentity" }
Siehe Add-on für OCI Native Ingress Controller bereitstellen
Berechtigungen für das OCI Native Ingress Controller-Cluster-Add-on erteilen
Der native OCI-Ingress-Controller erfordert Berechtigungen für den Zugriff auf Ressourcen, die von anderen Oracle Cloud Infrastructure-Services (wie dem Load-Balancer-Service und dem Certificates-Service) erstellt wurden. Sie erteilen dieselben Berechtigungen, unabhängig davon, ob Sie den nativen OCI-Ingress-Controller als eigenständiges Programm oder als Cluster-Add-on installieren. Und die Berechtigungen sind identisch, unabhängig davon, ob Sie einen Instanz-Principal, einen Benutzer-Principal oder einen Workload-Identitäts-Principal für den nativen OCI-Ingress-Controller eingerichtet haben. Die Art und Weise, wie Sie diese Berechtigungen erteilen, hängt jedoch von dem von Ihnen eingerichteten Principal-Typ ab:
- Bei der Verwendung von Instanz-Principals erbt der native OCI-Ingress-Controller die Berechtigungen, die der Instanz erteilt wurden, auf der er über eine dynamische Gruppe ausgeführt wird, zu der die Instanz gehört. Informationen zum Erstellen der dynamischen Gruppe für Instanz-Principals finden Sie unter Instanz-Principals zum Aktivieren des Zugriffs auf OCI-Services und -Ressourcen verwenden.
- Bei der Verwendung von Benutzer-Principals erbt der native OCI-Ingress-Controller die Berechtigungen, die einem Benutzer über eine Gruppe erteilt wurden, zu der der der Benutzer gehört. Informationen zum Erstellen des Benutzers und der Gruppe für Benutzer-Principals finden Sie unter Benutzer-Principals zum Aktivieren des Zugriffs auf OCI-Services und -Ressourcen verwenden.
- Bei der Verwendung von Workload-Identitäts-Principals erbt der native OCI-Ingress-Controller die Berechtigungen, die einer Workload erteilt wurden, die auf einem angegebenen Cluster ausgeführt wird, im Kubernetes-Serviceaccount und Namespace, der während der Installation für den nativen OCI-Ingress-Controller erstellt wurde. Weitere Informationen finden Sie unter Workload-Identitäts-Principals verwenden, um den Zugriff auf OCI-Services und -Ressourcen zu ermöglichen.
Um Berechtigungen für den nativen Ingress-Controller von OCI einzurichten, erstellen Sie eine Policy für die Gruppe (im Fall von Benutzer-Principals), für die dynamische Gruppe (im Fall von Instanz-Principals) oder für die Workload (im Fall von Workload-Identitäts-Principals) mit Policy-Anweisungen für den Zugriff auf OCI-Services und -Ressourcen:
- Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
- Folgen Sie den Anweisungen unter So erstellen Sie eine Policy, und geben Sie der Policy einen Namen (Beispiel:
acme-oke-native-ingress-controller-policy
). -
Wenn Sie Instanz-Principals oder Benutzer-Principals verwenden, geben Sie Policy-Anweisungen ein, um den Zugriff auf die OCI-Services und -Ressourcen zuzulassen, die vom nativen OCI-Ingress-Controller verwendet werden, in folgendem Format:
Allow <group|dynamic-group> <subject-name> to <verb> <resource> in <location>
Hierbei gilt:
<group|dynamic-group>
ist entwedergroup
(im Fall von Benutzer-Principals) oderdynamic-group
(im Fall von Instanz-Principals)<subject-name>
ist entweder der Name der Gruppe (im Fall von Benutzer-Principals) oder der Name der dynamischen Gruppe (im Fall von Instanz-Principals). Beispiel:acme-oke-nat-ing-cont-dyn-grp
. Wenn eine Gruppe oder dynamische Gruppe nicht in der Standardidentitätsdomain enthalten ist, stellen Sie dem Namen der Gruppe oder dynamischen Gruppe den Namen der Identitätsdomain im Format<group|dynamic-group> '<identity-domain-name>'/'<group-name|dynamic-group-name>'
voran. Sie können auch eine Gruppe oder dynamische Gruppe mit ihrer OCID im Formatgroup id <group-ocid>
oderdynamic-group id <dynamic-group-ocid>
angeben.<verb> <resource>
ist eine der folgenden Optionen (alle sind in separaten Policy-Anweisungen erforderlich):manage load-balancers
use virtual-network-family
manage cabundles
manage cabundle-associations
manage leaf-certificates
read leaf-certificate-bundles
manage leaf-certificate-versions
manage certificate-associations
read certificate-authorities
manage certificate-authority-associations
read certificate-authority-bundles
read public-ips
manage floating-ips
manage waf-family
read cluster-family
use tag-namespaces
(nur erforderlich, wenn der native OCI-Ingress-Controller definierte Tags auf Load Balancer anwenden soll. Informationen hierzu finden Sie unter Definierte Tags auf den Load Balancer anwenden)
<location>
ist eine der folgenden Optionen:tenancy
, wenn der native OCI-Ingress-Controller Zugriff auf Ressourcen im gesamten Mandanten haben soll.compartment <compartment-name>
, wenn der native OCI-Ingress-Controller nur Zugriff auf Ressourcen im Compartment mit dem Namen haben soll, den Sie alscompartment <compartment-name>
angeben.
Beispiel:
Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage load-balancers in compartment acme-oke-cluster-compartment
Die Syntax für die vollständige Liste der Policy-Anweisungen lautet wie folgt:
Allow <group|dynamic-group> <subject-name> to manage load-balancers in <location> Allow <group|dynamic-group> <subject-name> to use virtual-network-family in <location> Allow <group|dynamic-group> <subject-name> to manage cabundles in <location> Allow <group|dynamic-group> <subject-name> to manage cabundle-associations in <location> Allow <group|dynamic-group> <subject-name> to manage leaf-certificates in <location> Allow <group|dynamic-group> <subject-name> to read leaf-certificate-bundles in <location> Allow <group|dynamic-group> <subject-name> to manage leaf-certificate-versions in <location> Allow <group|dynamic-group> <subject-name> to manage certificate-associations in <location> Allow <group|dynamic-group> <subject-name> to read certificate-authorities in <location> Allow <group|dynamic-group> <subject-name> to manage certificate-authority-associations in <location> Allow <group|dynamic-group> <subject-name> to read certificate-authority-bundles in <location> Allow <group|dynamic-group> <subject-name> to read public-ips in <location> Allow <group|dynamic-group> <subject-name> to manage floating-ips in <location> Allow <group|dynamic-group> <subject-name> to manage waf-family in <location> Allow <group|dynamic-group> <subject-name> to read cluster-family in <location> Allow <group|dynamic-group> <subject-name> to use tag-namespaces in <location>
Beispiel für eine vollständige Liste der Policy-Anweisungen:
Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage load-balancers in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to use virtual-network-family in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage cabundles in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage cabundle-associations in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage leaf-certificates in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to read leaf-certificate-bundles in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage leaf-certificate-versions in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage certificate-associations in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to read certificate-authorities in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage certificate-authority-associations in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to read certificate-authority-bundles in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to read public-ips in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage floating-ips in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to manage waf-family in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to read cluster-family in compartment acme-oke-cluster-compartment Allow dynamic-group acme-oke-nat-ing-cont-dyn-grp to use tag-namespaces in compartment acme-oke-cluster-compartment
- Wenn Sie Workload-Identitäts-Principals verwenden, geben Sie Policy-Anweisungen ein, um den Zugriff auf die OCI-Services und -Ressourcen zuzulassen, die vom nativen OCI-Ingress-Controller verwendet werden, in folgendem Format:
Allow any-user to <verb> <resource> in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'}
Hierbei gilt:
<verb> <resource>
ist eine der folgenden Optionen (alle sind in separaten Policy-Anweisungen erforderlich):manage load-balancers
use virtual-network-family
manage cabundles
manage cabundle-associations
manage leaf-certificates
read leaf-certificate-bundles
manage leaf-certificate-versions
manage certificate-associations
read certificate-authorities
manage certificate-authority-associations
read certificate-authority-bundles
read public-ips
manage floating-ips
manage waf-family
read cluster-family
use tag-namespaces
(nur erforderlich, wenn der native OCI-Ingress-Controller definierte Tags auf Load Balancer anwenden soll. Informationen hierzu finden Sie unter Definierte Tags auf den Load Balancer anwenden)
<location>
ist eine der folgenden Optionen:tenancy
, wenn der native OCI-Ingress-Controller Zugriff auf Ressourcen im gesamten Mandanten haben soll.compartment <compartment-name>
, wenn der native OCI-Ingress-Controller nur Zugriff auf Ressourcen im Compartment mit dem Namen haben soll, den Sie alscompartment <compartment-name>
angeben.
request.principal.namespace = 'native-ingress-controller-system'
ist der Name des Namespace, der während der Installation für den nativen Ingress-Controller von OCI erstellt wurde.request.principal.service_account = 'oci-native-ingress-controller'
ist der Name des Serviceaccounts, der während der Installation für den nativen Ingress-Controller von OCI erstellt wurde.<cluster-ocid>
ist die OCID des Clusters, die Sie zuvor abgerufen haben.
Beispiel:
Allow any-user to manage load-balancers in tenancy where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = 'ocid1.cluster.oc1.iad.aaaaaaaa______ska'}
Die Syntax für die vollständige Liste der Policy-Anweisungen lautet:
Allow any-user to manage load-balancers in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to use virtual-network-family in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage cabundles in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage cabundle-associations in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage leaf-certificates in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to read leaf-certificate-bundles in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage leaf-certificate-versions in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage certificate-associations in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to read certificate-authorities in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage certificate-authority-associations in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to read certificate-authority-bundles in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to read public-ips in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage floating-ips in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to manage waf-family in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to read cluster-family in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'} Allow any-user to use tag-namespaces in <location> where all {request.principal.type = 'workload', request.principal.namespace = 'native-ingress-controller-system', request.principal.service_account = 'oci-native-ingress-controller', request.principal.cluster_id = '<cluster-ocid>'}
cert-manager wird installiert
Der native OCI-Ingress-Controller, unabhängig davon, ob er als Standalone-Programm oder als Cluster-Add-on installiert ist, verwendet Webhooks, um Podbereitschaftsgates in Podspezifikationen zu injizieren. Um die Sicherheit zu gewährleisten, muss der Webhook-Server im HTTPS-Modus ausgeführt werden, für den ein Paar Zertifikate und Schlüssel erforderlich ist. Der native Ingress-Controller von OCI verwendet Certificate Manager (auch als Cert-Manager bezeichnet), um die Zertifikate und Schlüssel für den Webhook-Server zu generieren und zu verwalten. Daher müssen Sie den Cert-Manager auf dem Cluster installieren, um Pod Readiness-Gates zu verwenden.
Unabhängig davon, ob Sie den nativen OCI-Ingress-Controller als eigenständiges Programm oder als Cluster-Add-on installieren, können Sie cert-manager auf zwei Arten installieren und ausführen:
-
Sie können cert-manager als Open-Source-Produkt installieren und ausführen, indem Sie Folgendes eingeben:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml
-
Sie können cert-manager als Cluster-Add-on installieren und ausführen. Weitere Informationen zur Installation von cert-manager als Cluster-Add-on finden Sie unter Cluster-Add-on installieren.
Weitere Informationen zum cert-Manager finden Sie in der cert-manager.io-Dokumentation.
Beachten Sie, dass die Installation des nativen OCI-Ingress-Controllers als Cluster-Add-on nicht erfolgreich verläuft, wenn Sie cert-manager noch nicht installiert haben, entweder als Open-Source-Produkt oder als Cluster-Add-on.