0

I'm trying to make sense of an example Kubernetes YAML config file that I am trying to customize:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-web-server
  namespace: myapp
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/security-groups: my-sec-group
    app.kubernetes.io/name: my-alb-ingress-web-server
    app.kubernetes.io/component: my-alb-ingress
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: my-web-server
              servicePort: 8080

The documentation for this example claims its for creating an "Ingress", or a K8s object that manages inbound traffic to a service or pod.

This particular Ingress resource appears to use AWS ALB (Application Load Balancers) and I need to adapt it to create and Ingress resource in GCP/GKE.

I'm Googling the Kubernetes documentation high and low and although I found the kubernetes.io/ingress.class docs I don't see where they define "alb" as a valid value for this property. I'm asking because I obviously need to find the correct kubernetes.io/ingress.class value for GCP/GKE and I assume if I can find the K8s/AWS Ingress documentation I should be able to find the K8s/GCP Ingress documentation.

I'm assuming K8s has AWS, GCP, Azure, etc. built-in client to kubectl for connecting to these clouds/providers?

So I ask: how does the above configuration tell K8s that we are creating an AWS Ingress (as opposed to an Azure Ingress, GCP Ingress, etc.) and where is the documentation for this?

1
  • For instance I see a few Google examples specifying kubernetes.io/ingress.class: azure/application-gateway, but where the heck is that documented? How am I supposed to know what all the values for kubernetes.io/ingress.class is and that azure/application-gateway is one of them?
    – simplezarg
    Commented Sep 1, 2021 at 18:40

1 Answer 1

-1

The documentation you're looking for is : https://cloud.google.com/kubernetes-engine/docs/concepts/ingress https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-multi-ssl

An example of an ingress resource :

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata: 
       name: ingress-front-api
       namespace: example
       annotations:
             networking.gke.io/managed-certificates: "front.example.com, api.example.com"
             kubernetes.io/ingress.global-static-ip-name: "prod-ingress-static-ip"
spec:
  rules:
  - host: front.example.com
    http:
          paths:
          - backend:
                service:
                      name: front
                      port:
                            number: 80
          path: /*
          pathType: ImplementationSpecific
 - host: api.example.com
    http:
          paths:
          - backend:
                service:
                      name: api
                      port:
                            number: 80
          path: /*
          pathType: ImplementationSpecific

1
  • Please add further details to expand on your answer, such as working code or documentation citations.
    – Community Bot
    Commented Sep 3, 2021 at 9:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.