Skip to content
This repository has been archived by the owner on Jul 30, 2021. It is now read-only.

Add port requirements doc #388

Merged

Conversation

jamiehannaford
Copy link
Contributor

Fixes #344. Wasn't too sure about all of them, so documented the ones I knew about. Feel free to add any extras I left out and I'll update the doc.

@ghost
Copy link

ghost commented Mar 17, 2017

Can one of the admins verify this patch?

3 similar comments
@ghost
Copy link

ghost commented Mar 17, 2017

Can one of the admins verify this patch?

@ghost
Copy link

ghost commented Mar 17, 2017

Can one of the admins verify this patch?

@ghost
Copy link

ghost commented Mar 17, 2017

Can one of the admins verify this patch?

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Mar 17, 2017
@aaronlevy
Copy link
Contributor

We should likely try and break this up into ingress/egress traffic with source/destination. For example, we don't want the kubelet api ports to be open to the world, we only want it to be open to master nodes.

This might be a good starting point:

https://github.com/coreos/coreos-kubernetes/blob/master/Documentation/kubernetes-networking.md#port-allocation

We can likely simplify some of that (e.g. assume flannel vxlan) - and there might be some missing.

/cc @dghubble (do you have something similar documented based on baremetal installs?)

@jamiehannaford jamiehannaford force-pushed the port-requirements-doc branch 2 times, most recently from 976e4a5 to ada4d7b Compare March 21, 2017 12:32
@jamiehannaford
Copy link
Contributor Author

Incorporated the feedback. If there's anything else I should add just let me know

| Protocol | Port Range | Source | Purpose |
-----------|------------|-------------------------------------------|------------------------|
| TCP | 443 | Worker Nodes, API Requests, and End-Users | Kubernetes API server. |
| UDP | 8472 | Master & Worker Nodes | flannel overlay network - *vxlan backend* |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TCP 10251 for kube-scheduler healthz
TCP 10252 for kube-controller-manager healthz

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The healthchecks should be local from the kubelet on the same host- so I don't think we would need to open them up to firewall rules external to the node.


| Protocol | Port Range | Source | Purpose |
-----------|-------------|--------------------------------|------------------------------------------------------------------------|
| UDP/TCP | 53 | Master & Worker Nodes | Internal DNS server |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kube-dns runs on the pod network, so this doesn't need to be open between hosts (ultimately packets will be going over flannel port 8472)

-----------|-------------|--------------------------------|------------------------------------------------------------------------|
| UDP/TCP | 53 | Master & Worker Nodes | Internal DNS server |
| UDP | 8472 | Master & Worker Nodes | flannel overlay network - *vxlan backend* |
| TCP | 10249 | Health check | Kube proxy health check |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should only be a local health-check. Shouldn't need to be open remotely

| TCP | 10249 | Health check | Kube proxy health check |
| TCP | 10250 | Master Nodes | Worker node Kubelet API for exec and logs. |
| TCP | 10255 | Heapster | Worker node read-only Kubelet API. |
| TCP | 30000-32767 | External Application Consumers | Default port range for [external service][external-service] ports. Typically, these ports would need to be exposed to external load-balancers, or other external consumers of the application itself. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

external-service link isn't populated here.

| UDP | 8472 | Master & Worker Nodes | flannel overlay network - *vxlan backend* |
| TCP | 10249 | Health check | Kube proxy health check |
| TCP | 10250 | Master Nodes | Worker node Kubelet API for exec and logs. |
| TCP | 10255 | Heapster | Worker node read-only Kubelet API. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heapster could be on workers or master (right now at least) - might make more clear to just note those as the sources (rather than the app name).

Also, it has been a while since I've looked but I thought heapster itself needed access to a cadvisor port (but maybe not anymore)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think you're right. Looks like it's 4194: https://github.com/kubernetes/kubernetes/pull/2759/files

@jamiehannaford
Copy link
Contributor Author

@lblackstone @aaronlevy Thanks for feedback, RFR again

@aaronlevy
Copy link
Contributor

@jamiehannaford mind if we re-open? Sorry it has taken so long to come back to this -- got bogged down in a bunch of v1.6 development work.

@jamiehannaford jamiehannaford reopened this May 8, 2017
@ghost
Copy link

ghost commented May 8, 2017

Can one of the admins verify this patch?

3 similar comments
@ghost
Copy link

ghost commented May 8, 2017

Can one of the admins verify this patch?

@ghost
Copy link

ghost commented May 8, 2017

Can one of the admins verify this patch?

@ghost
Copy link

ghost commented May 8, 2017

Can one of the admins verify this patch?

@jamiehannaford
Copy link
Contributor Author

@aaronlevy Sure, np. If there's anything else that needs to be added in just ping me

@aaronlevy
Copy link
Contributor

Can we name the document network-requirements.md. Other than that I think this is ready to merge. As a follow up we might want to also add a list of egress requirements (could base off: https://github.com/coreos/tectonic-installer/blob/master/Documentation/generic-platform.md)

@jamiehannaford jamiehannaford force-pushed the port-requirements-doc branch from f166f1f to f19e178 Compare May 16, 2017 10:33
@jamiehannaford
Copy link
Contributor Author

@aaronlevy Okay, done. Sorry it took so long to get to!

Copy link
Contributor

@aaronlevy aaronlevy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@aaronlevy aaronlevy merged commit f6f0a67 into kubernetes-retired:master May 16, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. reviewed/needs rework
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants