Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Kubernetes Add-ons

The following general Kubernetes add-ons should be added:

ExternalDNS

ExternalDNS is a Kubernetes add-on that configures public DNS servers with information about exposed Kubernetes services to make them discoverable.

To install ExternalDNS, follow these steps:

  1. Add bitnami repository to the helm repository:

    helm repo add bitnami https://charts.bitnami.com/bitnami
  1. Update helm repository to get the latest software:

    helm repo update
  1. Create a file called external-dns-values.yaml and populate it with the following helm values:

    gcp:
      zoneType: public
    domainFilters:
      - <gke_domain_dns_name from terraform output>
    policy: sync
    provider: google
    txtOwnerId: <gke_domain_zone_name from terraform output>
    serviceAccount:
      annotations:
        iam.gke.io/gcp-service-account: <external_dns_service_account from terraform output>
  2. Install the ExternalDNS helm chart:

    helm install external-dns bitnami/external-dns -n uepe \
    --version <helm chart version> -f external-dns-values.yaml

    Where <helm chart version> is a compatible version listed in the Compatibility Matrix.

Ingress NGINX Controller

This is an optional add-on. Refer to the Introduction - GCP (4.1) chapter for additional information.

The Ingress NGINX Controller is an ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer.

To install Ingress NGINX Controller, follow these steps:

  1. Add ingress-nginx repository to the helm repository:

    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
  1. Update helm repository to get the latest software:

    helm repo update
  1. Create a file called ingress-nginx-values.yaml and populate it with the following helm values:

    controller:
      scope:
        enabled: true
      admissionWebhooks:
        enabled: false
      metrics:
        enabled: false
        serviceMonitor:
          enabled: false
      ingressClassResource:
        name: nginx
        enabled: true
        default: false
        controllerValue: "k8s.io/ingress-nginx"
      watchIngressWithoutClass: false
      service:
        annotations:
          cloud.google.com/backend-config: '{"default": "nginx-controller-healthcheck-config"}'
          cloud.google.com/app-protocols: '{"http":"HTTP", "https":"HTTPS"}'  
        targetPorts:
          http: 80
          https: 443
        type: NodePort
      extraArgs:
        v: 1
    serviceAccount:
      create: false
  1. Install the ingress-nginx-controller helm chart:

    helm install ingress-nginx ingress-nginx/ingress-nginx --version <helm chart version> -f ingress-nginx-values.yaml -n uepe

    Where <helm chart version> is a compatible version listed in the Compatibility Matrix.

If you are running multiple installations on the cluster, in case the Nginx IngressClass resource is already installed, then you should set the following helm value to avoid hitting a resource already exists error:

controller.ingressClassResource.enabled=false

 

Executing helm list should show all add-ons added in this section:

NAME                        	NAMESPACE	REVISION	UPDATED                             	STATUS  	CHART                             	APP VERSION
external-dns                	uepe     	1       	2024-02-06 14:06:28.705309 +0800 +08	deployed	external-dns-6.31.5               	0.14.0     
ingress-nginx-controller        uepe     	1       	2024-02-22 11:44:54.18561 +0800 +08 	deployed	ingress-nginx-4.9.1               	1.9.6

This section is now complete. Now proceed to the Usage Engine Private Edition Preparations - GCP section.

  • No labels