diff --git a/docs/concepts/configuration/overview.md b/docs/concepts/configuration/overview.md index 098517d9a7..1cb922a272 100644 --- a/docs/concepts/configuration/overview.md +++ b/docs/concepts/configuration/overview.md @@ -39,7 +39,17 @@ This is a living document. If you think of something that is not on this list bu - It's typically best to create a [service](/docs/concepts/services-networking/service/) before the corresponding [replication controllers](/docs/concepts/workloads/controllers/replicationcontroller/). This lets the scheduler spread the pods that comprise the service. -- Don't use `hostPort` unless it is absolutely necessary (for example: for a node daemon). It specifies the port number to expose on the host. When you bind a Pod to a `hostPort`, there are a limited number of places to schedule a pod due to port conflicts— you can only schedule as many such Pods as there are nodes in your Kubernetes cluster. +- Don't use `hostPort` unless it is absolutely necessary (for example: for a node daemon). + It specifies the port number to expose on the host. + When you bind a Pod to a `hostPort`, there are a limited number of places to schedule a pod due to port conflicts. + The conflict comes from the requirement of an unique combination. + Different combinations mean different requirements. + For example, a pod that binds to host port 80 on 127.0.0.1 with TCP protocol has no conflict with another Pod that binds to host port 80 on 127.0.0.2 with TCP protocol. + + *Special notes on hostIP and protocol*: If you don't specify the hostIP and protocol explicitly, + kubernetes will use 0.0.0.0 and TCP as the default hostIP and protocol, + where "0.0.0.0" is a wildcard IP that will match all <*,hostPort,protocol> on the node the pod is scheduled on. + Specifically, it will match all tuples for all IPs on the host. If you only need access to the port for debugging purposes, you can use the [kubectl proxy and apiserver proxy](/docs/tasks/access-kubernetes-api/http-proxy-access-api/) or [kubectl port-forward](/docs/tasks/access-application-cluster/port-forward-access-application-cluster/). You can use a [Service](/docs/concepts/services-networking/service/) object for external service access.