Readiness http-get with No Container Port Exposed


#1

Hello -

I have a service with the following configs:

    Type:              ClusterIP
    IP:                10.43.166.42
    Port:              <unset>  8080/TCP
    TargetPort:        8080/TCP
    Endpoints:         192.168.245.230:8080

The container which is the endpoint 192.168.245.230:8080 has the following configs:

    Ports:          9080/TCP, 1099/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Running
      Started:      Mon, 25 Feb 2019 12:59:02 -0800
    Ready:          True
    Restart Count:  0
    Readiness:      http-get http://:8080/health delay=30s timeout=1s period=10s #success=1 #failure=3

If I try to access my service via http://my-service:8080 I get a 200. I expect this to not work because the container doesn’t have 8080 exposed. Can my service forward to ports that aren’t exposed?


#2

exposing ports in Pods is optional - this is working as intended


#3

Thanks @thockin

I am finding more and more documentation on how pod.spec.containers[].ports is purely for documentation. As long as the container is listening on the port(s) they will be available within the network. Thanks for putting me in the right direction.