-
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add K8S Network Section & Fix some typos (#142)
* Add cross-referente into VPC Addresing to EKS Network considerations/requirements file * Add K8S-EKS folder with overview & networking (vpc adressing) documentation (WIP)
- Loading branch information
1 parent
d850719
commit 8f81ac9
Showing
6 changed files
with
124 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
98 changes: 98 additions & 0 deletions
98
docs/how-it-works/features/compute/k8s-eks/vpc-adressing.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# Kubernetes AWS EKS | ||
|
||
# Network Layer: EKS Network Requirements | ||
|
||
!!! info "In this section we detail all the network design related specifications" | ||
* [x] VPCs CIDR blocks | ||
* [x] Private & Public Subnets IP Ranges | ||
|
||
## Considerations | ||
!!! attention "Design considerations" | ||
* :ledger: **AWS EKS:** Docker runs in the 172.17.0.0/16 CIDR range in Amazon EKS clusters. | ||
We recommend that your cluster's VPC subnets do not overlap this range. Otherwise, you will | ||
receive the following error: | ||
``` | ||
Error: : error upgrading connection: error dialing backend: dial tcp 172.17.nn.nn:10250: | ||
getsockopt: no route to host | ||
``` | ||
Read more: [AWS EKS network requirements](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) | ||
* :ledger: **Reserved IP Addresses** | ||
The first four IP addresses and the last IP address in each subnet CIDR block are not available for you to use, | ||
and cannot be assigned to an instance. For example, in a subnet with CIDR block 10.0.0.0/24, the following five IP | ||
addresses are reserved. For more [AWS VPC Subnets IP addressing](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4) | ||
--- | ||
|
||
### VPCs IP Addressing Plan (CIDR blocks sizing) | ||
|
||
!!! summary "Introduction" | ||
VPCs can vary in size from 16 addresses (/28 netmask) to 65,536 addresses (/16 netmask). | ||
In order to size a VPC correctly, it is important to understand the number, types, and sizes of workloads | ||
expected to run in it, as well as workload elasticity and load balancing requirements. | ||
|
||
Keep in mind that there is no charge for using Amazon VPC (aside from EC2 charges), therefore cost | ||
should not be a factor when determining the appropriate size for your VPC, so make sure you size your | ||
VPC for growth. | ||
|
||
Moving workloads or AWS resources between networks is not a trivial task, so be generous in your | ||
IP address estimates to give yourself plenty of room to grow, deploy new workloads, or change your | ||
VPC design configuration from one to another. The majority of AWS customers use VPCs with a /16 | ||
netmask and subnets with /24 netmasks. The primary reason AWS customers select smaller VPC and | ||
subnet sizes is to avoid overlapping network addresses with existing networks. | ||
|
||
So having [AWS single VPC Design](https://aws.amazon.com/answers/networking/aws-single-vpc-design/) we've chosen | ||
a Medium/Small VPC/Subnet addressing plan which would probably fit a broad range variety of | ||
use cases | ||
|
||
## Networking - IP Addressing | ||
|
||
!!! example "Starting CIDR Segment (AWS EKS clusters)" | ||
* [x] AWS EKS clusters IP Addressing calculation is presented below based on segment `10.0.0.0/16` (starts at /16 due to AWS VPC limits) | ||
* [x] We started from `10.0.0.0/16` and subnetted to `/19` | ||
* [x] Resulting in **Total Subnets: 8** | ||
* Number of available hosts for each subnet: 8190 | ||
* Number of available IPs (AWS) for each subnet: 8187 | ||
|
||
!!! example "Individual CIDR Segments (VPCs)" | ||
:fast_forward: Then each of these are /16 to /19 | ||
|
||
* [x] Considering the whole Starting CIDR Segment (AWS EKS clusters) before declared, we'll start at `10.0.0.0/16` | ||
* **apps-devstg** | ||
* 1ry VPC CIDR: `10.0.0.0/16` | ||
* 1ry VPC DR CIDR: `10.20.0.0/16` | ||
* **apps-prd** | ||
* 1ry VPC CIDR: `10.10.0.0/16` | ||
* 1ry VPC DR CIDR: `10.30.0.0/16` | ||
|
||
* [x] Resulting in **Subnets: 4 x VPC** | ||
* VPC Subnets with Hosts/Net: 16. | ||
* Eg: apps-devstg account → us-east-1 w/ 3 AZs → 3 x Private Subnets /az + 3 x Public Subnets /az | ||
* 1ry VPC CIDR: `10.0.0.0/16 `Subnets: | ||
* Private `10.0.0.0/19, 10.0.32.0/19 and 10.0.64.0/19` | ||
* Public `10.0.96.0/19, 10.0.128.0/19 and 10.0.160.0/19` | ||
|
||
## Planned Subnets per VPC | ||
|
||
Having defined the initial VPC that will be created in the different accounts that were defined, we are going to create | ||
subnets in each of these VPCs defining Private and Public subnets split among different availability zones: | ||
|
||
|
||
| Subnet address | Range of addresses | Hosts | Assignment | | ||
| :------------: | :-------------------------: | :---: | :--------------------------------------: | | ||
| 10.0.0.0/19 | 10.0.0.0 - 10.0.31.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1a | | ||
| 10.0.32.0/19 | 10.0.32.0 - 10.0.63.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1b | | ||
| 10.0.64.0/19 | 10.0.64.0 - 10.0.95.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1c | | ||
| 10.0.96.0/19 | 10.0.96.0 - 10.0.127.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1a | | ||
| 10.0.128.0/19 | 10.0.128.0 - 10.0.159.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1b | | ||
| 10.0.160.0/19 | 10.0.160.0 - 10.0.191.0/255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1c | | ||
| 10.0.192.0/19 | 10.0.192.0 - 10.0.223.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1 | | ||
| 10.0.224.0/19 | 10.0.224.0 - 10.0.224.255 | 8190 | 1ry VPC: apps-devstg<br/> AZ: us-east-1 | | ||
|
||
**Note:** Additional clusters can use their own available VPC space under 10.x.0.0/16. | ||
|
||
- [Subnetting reference #1 | Visual Subnet Calculator (https://www.davidc.net/)](https://www.davidc.net/sites/default/subnets/subnets.html?network=10.0.0.0&mask=16&division=15.7231) | ||
|
||
- [Subnetting reference #2 | IP Calculator / IP Subnetting (https://jodies.de/)](http://jodies.de/ipcalc?host=10.0.0.0&mask1=16&mask2=19) | ||
|
||
## Read More | ||
!!! info "EKS Reference Architecture Specs" | ||
In case you would like to further understand the different tech specs and configs for this Ref Arch you could find some details like at the [Features/Compute/K8s EKS](./overview.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters