In the "Installing kubeadm" document, the "Check required ports" section indicates the inbound port ranges required for various components and purposes. However, it does not indicate _which other components open connections on these ports_.
When writing firewall rules for the cluster鈥攕uch as with AWS security group rules鈥攊t's necessary to specify the source of the inbound traffic, whether with IP addresses or logical groups of client machines (security groups). It would help if these "required ports" tables had one more column that indicated _from where we can expect the connections on each of these ports to originate_.
For instance, I _think_鈥攂ut am not sure鈥攖hat the _kubelets_ on worker nodes connect to the API server, and, conversely, the API server connects to them for _kubectl exec_ and _kubectl logs_. What else connects to the "Kubelet API" port (10250) on the nodes? How about the "Read-only Kubelet API" port (10255). Does anything connect to the "etcd server client API" ports other than the API server?
I expect that I could resolve these questions after a long period of experimentation, incrementally relaxing the firewall's restrictions by diagnosing the logs, but we could save people that time and effort by documenting the source of this traffic in this table.
I concede that it's _possible_ to write firewall rules that allow this inbound traffic to originate anywhere, but I'd prefer to be more specific.
_install required ports source_
FEATURE REQUEST
This is either a defect in the existing documentation or a request to improve the documentation as a feature; I could argue it either way.
I studied the documentation, but found that it lacked details that I need in order to write proper firewall rules for my cluster.
The two aforementioned tables would mention which components connect to which others on which ports.
If we're able to at least collect the facts in subsequent discussion here, I'm willing to submit a PR to update the tables, though the width might be a problem with a fifth column.
Agreed, we could definitely expand the docs here.
We have built tools that do this downstream and we should outline.
xref 1: https://github.com/heptiolabs/wardroom
xref 2: https://github.com/heptio/aws-quickstart
Thanks. I think I found the pertinent portion of the AWS Quickstart template here.
My current set of rules are narrower and more specific than those, but I have no confidence yet that they're correct. I was trying to express what's in those tables, using a security group for each of the following categories, anticipating that some machines will adopt more than one group:
Most helpful comment
Agreed, we could definitely expand the docs here.
We have built tools that do this downstream and we should outline.
xref 1: https://github.com/heptiolabs/wardroom
xref 2: https://github.com/heptio/aws-quickstart