kong ingress controller has not effect on ingress resource

9/25/2018

I have kubernetes Cluster v1.10 Over Centos 7

I installed kubernetes by hard-way

I have installed Kong ingress controller using helm

helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm install stable/kong

and this output

NOTES:
1. Kong Admin can be accessed inside the cluster using:
 DNS=guiding-wombat-kong-admin.default.svc.cluster.local
 PORT=8444

To connect from outside the K8s cluster:
 HOST=$(kubectl get nodes --namespace default -o jsonpath='{.items[0].status.addresses[0].address}')
 PORT=$(kubectl get svc --namespace default guiding-wombat-kong-admin -o jsonpath='{.spec.ports[0].nodePort}')


2. Kong Proxy can be accessed inside the cluster using:
 DNS=guiding-wombat-kong-proxy.default.svc.cluster.local
 PORT=8443


To connect from outside the K8s cluster:
 HOST=$(kubectl get nodes --namespace default -o jsonpath='{.items[0].status.addresses[0].address}')
 PORT=$(kubectl get svc --namespace default guiding-wombat-kong-proxy -o jsonpath='{.spec.ports[0].nodePort}')

and I deployed dummy file

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: http-svc
spec:
  replicas: 1
  selector:
    matchLabels:
      app: http-svc
  template:
    metadata:
      labels:
        app: http-svc
    spec:
      containers:
      - name: http-svc
        image: gcr.io/google_containers/echoserver:1.8
        ports:
        - containerPort: 8080
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP

---

apiVersion: v1
kind: Service
metadata:
  name: http-svc
  labels:
    app: http-svc
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
  name: http
    selector:
      app: http-svc

---

and I deployed ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: foo-bar
spec:
  rules:
  - host: foo.bar
    http:
      paths:
      - path: /
        backend:
          serviceName: http-svc
          servicePort: 80

and when I run :

kubectl get ing
NAME      HOSTS     ADDRESS   PORTS     AGE
foo-bar   foo.bar             80        1m

and when I browse

https://node-IP:controller-admin
{"next":null,"data":[]}

How can I troubleshoot this issue and find the solution?

Thank you :D

-- AhmedMItman
kong
kubernetes
kubernetes-helm
kubernetes-ingress

1 Answer

9/26/2018

I recommend installing it using this guide only not using minikube.

It work for me on AWS:

$ curl -H 'Host: foo.bar' http://35.162.32.30


Hostname: http-svc-66ffffc458-jkxsl

Pod Information:
    node name:  ip-x-x-x-x.us-west-2.compute.internal
    pod name:   http-svc-66ffffc458-jkxsl
    pod namespace:  default
    pod IP: 192.168.x.x

Server values:
    server_version=nginx: 1.13.3 - lua: 10008

Request Information:
    client_address=192.168.x.x
    method=GET
    real path=/
    query=
    request_version=1.1
    request_uri=http://192.168.x.x:8080/

Request Headers:
    accept=*/*
    connection=keep-alive
    host=192.168.x.x:8080
    user-agent=curl/7.58.0
    x-forwarded-for=172.x.x.x
    x-forwarded-host=foo.bar
    x-forwarded-port=8000
    x-forwarded-proto=http
    x-real-ip=172.x.x.x

Request Body:
    -no body in request-
-- Rico
Source: StackOverflow