Ablauf des Ingress-Zertifikats

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Für dieses Thema gibt es keine entsprechende Apigee Edge-Dokumentation.

Symptom

Ein ApigeeIssue mit Reason AIS_INGRESS_CERT_EXPIREY wird angezeigt, wenn Ressourcen im Namespace apigee angezeigt werden.

Fehlermeldungen

Nachdem kubectl -n apigee get apigeeissues ausgeführt wurde, wird ein Fehler wie der folgende angezeigt:

NAME                                         SEVERITY   REASON                     DOCUMENTATION                                                                          AGE
ingress-cert-expired-my-org-my-virtualhost   ERROR      AIS_INGRESS_CERT_EXPIREY   https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_CERT_EXPIREY   5h18m

Mögliche Ursachen

Ursache Beschreibung
Ingress-Zertifikat läuft bald ab Das konfigurierte Ingress-Zertifikat läuft innerhalb von 14 Tagen ab.
Ingress-Zertifikat ist abgelaufen Das konfigurierte Ingress-Zertifikat ist abgelaufen.

Ursache: Ingress-Zertifikat läuft bald ab

Das Ingress-Zertifikat, das im Kubernetes-Secret gespeichert ist, auf das ein ApigeeRouteConfig verweist, läuft innerhalb der nächsten 14 Tage ab.

Diagnose

Führen Sie dazu diesen Befehl aus:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Dabei ist ISSUE_NAME der Name des Problems. Beispiel: ingress-cert-expiring-soon-my-org-my-virtualhost

Die Ausgabe sollte in etwa so aussehen:

Name:         ingress-cert-expiring-soon-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        Ingress certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_CERT_EXPIREY
  Reason:         AIS_INGRESS_CERT_EXPIREY
  Severity:       WARNING
Events:           <none>
Spec:
  Details:        Ingress certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC

Der Inhalt von Spec.Details erläutert den Namen der ApigeeRouteConfig, die sich auf das Kubernetes-Secret mit dem Ingress-Zertifikat bezieht, das bald abläuft.

Lösung

  1. Verwenden Sie kubectl describe, um den Namen des ApigeeRouteConfig anzuzeigen, der das Ingress-Zertifikat enthält, das bald abläuft:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Dabei ist ISSUE_NAME der Name des Problems. Beispiel: ingress-cert-expiring-soon-my-org-my-virtualhost.

    In diesem Beispiel verweist ApigeeRouteConfig my-org-my-virtualhost auf das Secret my-org-my-virtualhost.

  2. Ermitteln Sie den virtualhost-Namen aus dem ApigeeRouteConfig.

    Der Name des ApigeeRouteConfig hat das Format <Apigee organization>-<virtualhost name>.

    In diesem Beispiel ist my-org die Apigee-Organisation und der Name des virtuellen Hosts my-virtualhost.

  3. Suchen Sie den entsprechenden virtuellen Host in Ihrem overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Aktualisieren Sie das Zertifikat und den Schlüssel, die in den Dateien sslCertPath und sslKeyPath aufgeführt sind.

  5. Wenden Sie die Änderungen auf den Virtualhost an:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

Ursache: Ingress-Zertifikat ist abgelaufen

Das Ingress-Zertifikat, das im Kubernetes-Secret gespeichert ist, auf das ein ApigeeRouteConfig verweist, ist abgelaufen.

Diagnose

Führen Sie dazu diesen Befehl aus:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Dabei ist ISSUE_NAME der Name des Problems. Beispiel: ingress-cert-expired-my-org-my-virtualhost

Es wird in etwa Folgendes zurückgegeben:

Name:         ingress-cert-expired-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        Ingress certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_CERT_EXPIREY
  Reason:         AIS_INGRESS_CERT_EXPIREY
  Severity:       ERROR
Events:           <none>
Spec:
  Details:        Ingress certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC

Der Inhalt von Spec.Details erläutert den Namen des ApigeeRouteConfig, der auf das Kubernetes-Secret mit dem abgelaufenen Ingress-Zertifikat verweist.

Lösung

  1. Verwenden Sie kubectl describe, um den Namen des ApigeeRouteConfig anzuzeigen, der das abgelaufene Ingress-Zertifikat hat:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Dabei ist ISSUE_NAME der Name des Problems. Beispiel: ingress-cert-expired-my-org-my-virtualhost.

    In diesem Beispiel verweist ApigeeRouteConfig my-org-my-virtualhost auf das Secret my-org-my-virtualhost.

  2. Ermitteln Sie den virtualhost-Namen aus dem ApigeeRouteConfig.

    Der Name des ApigeeRouteConfig hat das Format <Apigee organization>-<virtualhost name>.

    In diesem Beispiel ist my-org die Apigee-Organisation und der Name des virtuellen Hosts my-virtualhost.

  3. Suchen Sie den entsprechenden virtuellen Host in Ihrem overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Aktualisieren Sie das Zertifikat und den Schlüssel, die in den Dateien sslCertPath und sslKeyPath aufgeführt sind.

  5. Wenden Sie die Änderungen auf den Virtualhost an:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

Erfassen von Diagnoseinformationen erforderlich

Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen und wenden Sie sich dann an Google Cloud Customer Care:

  1. Die Google Cloud-Projekt-ID.
  2. Der Name der Apigee Hybrid-Organisation.
  3. Das Feld Spec.Details von ApigeeIssue.
  4. (Optional) Dateien, auf die von sslCertPath und sslKeyPath für den betroffenen virtuellen Host verwiesen wird.