网络配置
01创建VPC
虚拟私有云?(VPC)?是仅适用于您的 Amazon 账户的虚拟网络。它在逻辑上与 Amazon 云中的其他虚拟网络隔绝。您可以在 VPC 内启动您的 Amazon 资源,例如 Amazon EC2 实例。
https://cn-northwest-1.console.amazonaws.cn/vpc/home 点击此链接进入VPC控制面板,在左边菜单栏中找到“您的VPC”,在“您的VPC”界面点击“创建VPC”按钮。
选择“仅VPC”要创建的资源,填写“Name”和“IPv4 CIDR”,填写内容如下表所示,填写完成后点击“创建VPC”按钮,继而创建VPC完成。
Name
IPv4 CIDR
VPC-SG-R&I
172.25.0.0/19
创建完成后,编辑 VPC 设置,选择“DHCP”选项集。在DNS设置中,勾选“启用DNS解析”和“启用DNS主机名”,完成后点击“保存”按钮。
02创建子网
子网是您的 VPC 内的 IP 地址范围。您可以在指定子网内启动Amazon资源。对必须连接互联网的资源使用公有子网,而对将不会连接到互联网的资源使用私有子网。
在VPC控制面板的左侧菜单栏中找到“子网”,在子网控制面板中,点击“创建子网”按钮。创建子网所需配置信息如下表所示:
Name
VPC
可用区
IPv4 CIDR
subnet-R&i-public-ECS-A
VPC-SG-R&I
cn-northwest-1a
172.25.7.0/24
subnet-R&i-private-EKS cluster-A
VPC-SG-R&I
cn-northwest-1a
172.25.0.0/24
subnet-R&i-private-EKS cluster-C
VPC-SG-R&I
cn-northwest-1c
172.25.2.0/24
subnet-R&i-private-EKS cluster-B
VPC-SG-R&I
cn-northwest-1b
172.25.1.0/24
在VPC设置中,填写“VPC ID”,就是刚才创建VPC。在子网设置中,填写“子网名称”、“可用区”、“IPv4 CIDR块”,具体信息见上表,此处以“subnet-R&i-public-ECS-A”这个子网为例。
03创建路由器
??路由表?包含一组被称为路由的规则,决定了来自您的子网或网关的网络流量将指向何处。
在VPC控制面板的左侧菜单栏中找到“路由表”,在路由表控制面板中,点击“创建路由表”按钮。创建路由表所需配置信息如下表所示:
Name
VPC
关联子网名称
路由
目标
目标
rt-sg-r&i-ecs-cluster
VPC-SG-R&I
subnet-R&i-public-ECS-A
0.0.0.0/0
igw-sg-r&i(互联网网关)
172.25.0.0/19
local
rt-sg-r&i-EKS-cluster
VPC-SG-R&I
subnet-R&i-private-EKS cluster-A, subnet-R&i-private-EKS cluster-C, subnet-R&i-private-EKS cluster-B
0.0.0.0/0
nat-sg-rni(NAT 网关)
172.25.0.0/19
local
在路由表设置中,填写“名称”和“VPC”,具体信息见上表,此处以“rt-sg-r&i-ecs-cluster”这个路由表为例。填写完成后,点击“创建路由表”按钮。
勾选刚创建的路由表,在下面信息栏中找到“子网关联”,点击“编辑子网关联”。
在可用子网配置中,勾选关联子网名称,详情请见上表。填写完成后,点击“保存关联”按钮,完成路由表与子网的关联。
04创建网络接口
弹性网络接口?是 VPC 中表示虚拟网卡的逻辑网络组件。
点击https://cn-northwest-1.console.amazonaws.cn/ec2/v2/home 链接,进入EC2控制面板。在左侧菜单栏中找到“网络接口”。在网络接口界面,点击“创建网络接口”按钮。创建网络接口所需配置信息如下表所示:
子网
私有 IPv4 地址
subnet-R&i-public-ECS-A
自动分配
在详细信息配置中,填写“子网”,完成后点击“创建网络接口”按钮。
05创建弹性公网IP
弹性 IP 地址是公有 IPv4 地址,可通过 Internet 访问。如果您的实例没有公有 IPv4 地址,则可以将弹性 IP 地址与您的实例关联以启用与 Internet 的通信。例如,这允许您从本地计算机连接到您的实例。
在VPC控制面板的左侧菜单栏中找到“弹性IP”,在弹性IP地址控制面板中,点击“分配弹性IP地址”按钮,即可分配弹性IP。
选中刚创建的弹性IP地址,点击“操作”按钮,在其下拉框中点击“关联弹性IP地址”。
在弹性IP地址配置中,选择“网络接口”,在网络接口处填写刚创建的“网络接口”,填写完成后点击“关联”按钮,完成弹性IP地址与网络接口的关联。
06创建NAT网关
NAT 网关是一种网络地址转换 (NAT) 服务。您可以使用 NAT 网关,以便私有子网中的实例可以连接到 VPC 外部的服务,但外部服务无法启动与这些实例的连接。
在VPC控制面板的左侧菜单栏中找到“NAT 网关”,在NAT 网关控制面板中,点击“创建NAT网关”按钮。创建NAT网关所需配置信息如下表所示:
Name
子网名称
连接类型
nat-sg-rni
subnet-R&i-public-ECS-A
公有
在NAT网关设置中,填写“名称”、“子网”,具体信息见上表。连接类型选择“公有”,弹性IP分配ID为刚创建的弹性公网IP,填写完成后,点击“创建NAT网关”按钮。
07创建互联网网关
Internet 网关是一种横向扩展、冗余且高度可用的 VPC 组件,支持在 VPC 和 Internet 之间进行通信。它支持 IPv4 和 IPv6 流量。它不会对您的网络流量造成可用性风险或带宽限制。
借助互联网网关,公有子网中具有公有 IPv4 地址或 IPv6 地址的资源(例如 EC2 实例)可以连接到互联网。同样,互联网上的资源也可以使用公有 IPv4 地址或 IPv6 地址发起到子网中的资源的连接。例如,您可以通过互联网网关,使用本地电脑连接到 Amazon 中的 EC2 实例。
互联网网关为您的 VPC 路由表中可通过互联网路由的流量提供目标。对于使用 IPv4 的通信,互联网网关还会执行网络地址转换 (NAT)。对于使用 IPv6 的通信,不需要 NAT,因为 IPv6 地址是公有的。建立互联网网关并不需要缴纳额外的费用。
在VPC控制面板的左侧菜单栏中找到“互联网网关”,在互联网网关控制面板中,点击“创建互联网网关”按钮。创建互联网网关所需配置信息如下表所示:
Name
关联VPC名称
igw-sg-r&i
VPC-SG-R&I
在互联网网关设置中,填写Name,具体信息请见上表,填写完成后点击“创建互联网网关”按钮。
选中刚创建的互联网网关,点击“操作”按钮,在其下拉框中点击“附加到VPC”按钮,附加我们创建的VPC。
下图为附加VPC完成后的截图
在路由表控制面板,选中名为“rt-sg-r&i-ecs-cluster”的路由表,点击“编辑路由”按钮。
点击“添加路由”按钮,加上刚创建的互联网网关,具体目标地址按需求来,这里只作为参考。填写完成后,点击“保存更改”。
创建集群服务角色
01创建集群服务角色
点击https://console.amazonaws.cn/iamv2/home?reginotallow=cn-northwest-1#/home 链接进入IAM控制面板,在左侧菜单栏中找到角色,点击“创建角色按钮”,创建角色所需配置信息如下表所示:
角色名称
权限策略
EKSClusterRole
AmazonEC2ContainerRegistryReadOnly
AmazonEKSClusterPolicy
AmazonEKS_CNI_Policy
AmazonEKSWorkerNodePolicy
选中“亚马逊云科技服务”,在其他亚马逊云科技服务的使用案例中,查找“EKS”,选中“EKS - Cluster”,完成后点击“下一步”按钮。
继续点击“下一步”。
填写“角色名称”,具体信息请见上表。填写完成后,点击“创建角色”,完成EKS集群角色创建。
点击刚创建的角色,进入详细界面。
找到“权限”,点击“添加权限”按钮。
添加入下图所示的权限,具体名称请见上表。
选择完成后,点击“添加权限”按钮,完成角色权限的添加。
02创建集群安全组
在VPC控制面板的左侧菜单栏中找到“安全组”,在安全组控制面板中,点击“创建安全组”按钮。创建安全组所需配置信息如下表所示:
安全组名称
VPC
标签(键)
标签(值)
eks-cluster-sg-live-k8s
VPC-SG-R&I
Name
eks-cluster-sg-live-k8s
kubernetes.io/cluster/live-k8s
owned
在基本详细信息中,填写“安全组名称”、“VPC”、“入站规则”、“出站规则”,具体信息请见上表。填写完成后,点击“创建安全组”按钮,完成安全组的创建。
03创建密钥对
在AMI控制面板的左侧菜单栏中找到“密钥对”,在密钥对控制面板中,点击“创建密钥对”按钮。创建密钥对所需配置信息如下表所示:
名称
密钥对类型
私钥文件格式
AWS_LIVE_SecretKey
RSA
.pem
在密钥对配置中填写“名称”、“密钥对类型”、“私钥文件格式”,具体信息请见上表。填写完成后点击“创建密钥对”,完成密钥对的创建。
导出该密钥对,用于远程连接。
04创建集群
点击https://cn-northwest-1.console.amazonaws.cn/eks/home 链接进入EKS控制面板创建集群,创建集群所需配置信息如下表所示:
集群名称
Kubernetes 版本
集群服务角色
live_k8s
1.23
EKSClusterRole
填写“集群名称”后,点击“下一步”按钮。
在配置集群界面,填写“名称”、“Kubernetes 版本”、“集群服务角色”,具体信息如上表所示。根据下表信息填写“标签”,填写完成后点击“下一步”按钮。
标签
键
值
Createdby
JIN
Env
prod
Name
live-k8s
Project
live
在联网配置中,填写“VPC”、“子网”、“安全组”等信息,具体信息及配置如下图、下表所示。
VPC名称
子网
集群安全组
服务的 IPv4 地址范围
集群端点访问
VPC-SG-R&I
subnet-R&i-private-EKS cluster-A
eks-cluster-sg-live-k8s
10.100.0.0/16
公有和私有
subnet-R&i-private-EKS cluster-C
subnet-R&i-private-EKS cluster-B
在配置日志记录中,按需求进行配置,我这里暂时不配置日志,直接点击“下一个”按钮。
在选择插件中,选中如下三个插件,点击“下一步”按钮。
在配置选定的插件设置中,直接点击“下一个”按钮。
检查所有配置,都没有问题后,点击“创建”按钮,完成集群创建。
05创建身份供应商
在创建完成后的集群详情界面中,找到“概述”,复制“OpenID Connect 提供商 URL”,用于下面的操作。
在IAM控制台界面的左侧菜单栏中,找到“身份提供商”,点击“添加提供商”按钮。
具体配置信息请见下图和下表所示。要注意“提供商 URL”,即为刚复制的“OpenID Connect 提供商 URL”。
提供商类型
提供商 URL
受众
标签
键
值
OpenID Connect
EKS中的OpenID Connect 提供商 URL
sts.amazonaws.com
Createdby
JIN
Env
prod
Name
live-k8s
Project
live
06创建计算节点组
在刚创建的EKS详情页中,找到“计算”,点击“创建节点组”按钮。创建节点组所需配置信息如下表所示:
节点组名称
节点 IAM 角色
SSH 密钥对
标签
键
值
live-k8s-nodegroup
AWS-EKS-LIVE-NODEGROUP-ROLE
AWS_LIVE_SecretKey
Project
live
Createdby
JIN
Env
prod
Name
live-k8s
在配置节点组中,填写“名称”、“节点组IAM角色”、“标签”,具体信息请见上表。填写完成后,点击“下一个”按钮。
在设置计算和扩展配置中,根据下图和下表所示填写信息。填写完成后,点击“下一个”按钮。
AMI 类型
容量类型
实例类型
磁盘大小
Amazon Linux 2 (AL2_x86_64)
On-Demand
c5.xlarge
300GiB
在指定联网中,选择“配置对节点的SSH访问权限”。
会弹出一个警告,点击“启用”按钮。
根据下图及下表进行配置,配置完成后点击“下一个”按钮。
子网
SSH 密钥对
subnet-R&i-private-EKS cluster-A
AWS_LIVE_SecretKey
subnet-R&i-private-EKS cluster-C
subnet-R&i-private-EKS cluster-B
检查所有配置,完成后点击“创建”按钮,完成节点组的创建。
大约等待30分钟后,可以看到“计算”页面已经创建了4台节点,并且状态为“已就绪”。
插件的状态也都为活动,则说明节点创建成功。
07创建跳板机
创建角色
创建跳板机EC2的角色,具体配置如下图下表所示。
角色名称
权限策略
EC2_Full_access
AWSCloud9SSMInstanceProfile
AWSResourceAccessManagerFullAccess
AmazonEC2FullAccess
AmazonEKSClusterPolicy
AmazonSSMManagedInstanceCore
AmazonSSMPatchAssociation
CloudWatchFullAccess
创建安全组
根据下表信息,创建安全组。
安全组名称
出站规则
live_vpn
类型
协议
端口范围
源
描述
SSH
TCP
22
x.x.x.x/x
特定ip
所有流量
全部
全部
10.100.0.0/16
EKS SERVICE
所有流量
全部
全部
eks-cluster-sg-live-k8s
–
入站规则
类型
协议
端口范围
目标
描述
所有流量IPv4
全部
全部
0.0.0.0/0
–
创建弹性IP地址
创建网络接口
创建网络接口,子网为“subnet-R&i-public-ECS-A”,具体操作如下图所示。
为刚创建的网络接口绑定弹性IP地址,具体操作如下图所示。
创建EC2
在EC2控制面板的左侧菜单栏中找到“实例”,在实例控制面板中,点击“启动新实例”按钮。创建新实例所需配置信息如下表所示:
名称
AMI名称
实例类型
密钥对名称
vpc名称
LIVE_VPN
amzn2-ami-kernel-5.10-hvm-2.0.20221004.0-x86_64-gp2
c5.xlarge
AWS_LIVE_SecretKey
VPC-SG-R&I
子网名称
安全组
IAM
存储大小
存储类型
subnet-R&i-public-ECS-A
live_vpn
EC2_Full_access
100 GiB
gp3
填写名称,点击“浏览其他AMI”按钮,选择我们需要的AMI。
在输入框中,填写我们需要的AMI,点击“社区AMI(1)”,选中该AMI。
选择我们需要的“实例类型”和“密钥对”。
如下图所示,进行网络配置。
点开“高级网络配置”,在“网络接口”处选择我们刚创建的网络接口。
根据需求配置存储。
选中刚创建的角色,完成配置后,点击“启动实例”按钮,完成EC2的创建。
创建完成后,如下图所示。
安装必要软件
在跳板机EC2中运行下面的命令,安装必要的软件。
复制
## Installing pip
if ! hash python pip unzip jq yq &> /dev/null; then
if [ -f /usr/bin/yum ]; then sudo yum -y -q install python-pip unzip jq && sudo pip install yq; fi
if [ -f /usr/bin/apt ]; then sudo apt update && sudo apt install --yes python-pip unzip jq && sudo pip install yq; fi
fi
## Installing awscli
if ! command -v aws &> /dev/null; then
curl --silent --location "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -q awscliv2.zip
sudo ./aws/install --update
rm -fr awscliv2* aws*/
fi
## Installing eksctl
if ! command -v eksctl &> /dev/null; then
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
source <(eksctl completion bash) 2>/dev/null
fi
## Installing aws-iam-authenticator
if ! command -v aws-iam-authenticator &> /dev/null; then
curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.23.7/2022-06-29/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
mkdir -p $HOME/.bin && mv ./aws-iam-authenticator $HOME/.bin/aws-iam-authenticator && export PATH=$HOME/.bin:$PATH
echo 'export PATH=$HOME/.bin:$PATH' >> ~/.bashrc
fi
## Installaing kubectl
if ! command -v kubectl &> /dev/null; then
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.23.7/2022-06-29/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
生成kubeconfig
为当前管理用户,创建访问密钥。
在跳板机EC2中配置aws-cli ~/.aws/config。
复制
aws configure
AWS Access Key ID [None]: #这里填写AK
AWS Secret Access Key [None]: #这里填写SK
Default region name [None]: cn-northwest-1 #填写地域
Default output format [None]: json
1.
2.
3.
4.
5.
执行下面命令查看配置。
复制
aws sts get-caller-identity
1.
执行下面命令,生成kubeconf。
复制
aws eks --region cn-northwest-1 update-kubeconfig --name live_k8s
1.
小结
至此,AWS创建EKS集群完成,且可以远程登录跳板机,并使用跳板机连接EKS集群。
0 留言