要在 Amazon Web Services (AWS) 中的用户自备基础设施上安装 OpenShift Container Platform,必须手动创建机器及其支持的基础设施。
使用提供的 CloudFormation 模板,您可以创建代表以下组件的 AWS 资源堆栈
-
AWS 虚拟私有云 (VPC)
-
网络和负载均衡组件
-
安全组和角色
-
OpenShift Container Platform 引导节点
-
OpenShift Container Platform 控制平面节点
-
OpenShift Container Platform 计算节点
或者,您可以手动创建组件,也可以重用满足集群要求的现有基础设施。查看 CloudFormation 模板以了解有关组件如何相互关联的更多详细信息。
其他基础设施组件
-
VPC
-
DNS 条目
-
负载均衡器(经典型或网络型)和侦听器
-
公共和私有 Route 53 区域
-
安全组
-
IAM 角色
-
S3 存储桶
如果您在断开连接的环境中工作,则无法访问 EC2、ELB 和 S3 端点的公共 IP 地址。根据您希望在安装过程中限制互联网流量的程度,可以使用以下配置选项
选项 1:创建 VPC 端点
创建 VPC 端点并将其附加到集群正在使用的子网。将端点命名如下:
-
ec2.<aws_region>.amazonaws.com
-
elasticloadbalancing.<aws_region>.amazonaws.com
-
s3.<aws_region>.amazonaws.com
使用此选项,网络流量将保留在您的 VPC 和所需的 AWS 服务之间。
选项 2:创建不带 VPC 端点的代理
作为安装过程的一部分,您可以配置 HTTP 或 HTTPS 代理。使用此选项,互联网流量将通过代理才能访问所需的 AWS 服务。
选项 3:创建带有 VPC 端点的代理
作为安装过程的一部分,您可以使用 VPC 端点配置 HTTP 或 HTTPS 代理。创建 VPC 端点并将其附加到集群正在使用的子网。将端点命名如下:
-
ec2.<aws_region>.amazonaws.com
-
elasticloadbalancing.<aws_region>.amazonaws.com
-
s3.<aws_region>.amazonaws.com
在 install-config.yaml
文件中配置代理时,请将这些端点添加到 noProxy
字段。使用此选项,代理可以阻止集群直接访问互联网。但是,网络流量将保留在您的 VPC 和所需的 AWS 服务之间。
所需的 VPC 组件
您必须提供合适的 VPC 和子网,以允许与您的机器通信。
组件 |
AWS 类型 |
描述 |
|
-
AWS::EC2::VPC
-
AWS::EC2::VPCEndpoint
|
您必须为集群提供一个公共 VPC。VPC 使用引用每个子网的路由表的端点,以改进与托管在 S3 中的注册表之间的通信。
|
|
|
您的 VPC 必须具有 1 到 3 个可用区之间的公共子网,并将它们与相应的入站规则关联。
|
|
-
AWS::EC2::InternetGateway
-
AWS::EC2::VPCGatewayAttachment
-
AWS::EC2::RouteTable
-
AWS::EC2::Route
-
AWS::EC2::SubnetRouteTableAssociation
-
AWS::EC2::NatGateway
-
AWS::EC2::EIP
|
您必须拥有一个公共互联网网关,以及附加到 VPC 的公共路由。在提供的模板中,每个公共子网都有一个带有 EIP 地址的 NAT 网关。这些 NAT 网关允许集群资源(如私有子网实例)访问互联网,并且对于某些受限网络或代理场景而言并非必需。
|
|
|
|
端口 |
原因 |
|
|
|
|
|
|
|
|
|
|
|
|
您的 VPC 可以具有私有子网。提供的 CloudFormation 模板可以为 1 到 3 个可用区之间创建私有子网。如果您使用私有子网,则必须为其提供适当的路由和表。
|
所需的 DNS 和负载均衡组件
您的 DNS 和负载均衡器配置需要使用公共托管区域,并且可以使用与安装程序使用的类似的私有托管区域,如果它配置集群的基础设施。您必须创建一个解析到负载均衡器的 DNS 条目。api.<cluster_name>.<domain>
的条目必须指向外部负载均衡器,而 api-int.<cluster_name>.<domain>
的条目必须指向内部负载均衡器。
集群还需要用于端口 6443 的负载均衡器和侦听器(Kubernetes API 及其扩展程序需要此端口)以及用于端口 22623 的负载均衡器和侦听器(新机器的 Ignition 配置文件需要此端口)。目标将是控制平面节点。端口 6443 必须可供集群外部的客户端和集群内的节点访问。端口 22623 必须可供集群内的节点访问。
组件 |
AWS 类型 |
描述 |
|
|
|
|
AWS::ElasticLoadBalancingV2::LoadBalancer
|
|
|
AWS::Route53::RecordSetGroup
|
|
|
AWS::ElasticLoadBalancingV2::Listener
|
|
|
AWS::ElasticLoadBalancingV2::TargetGroup
|
|
|
AWS::ElasticLoadBalancingV2::LoadBalancer
|
|
|
AWS::Route53::RecordSetGroup
|
|
|
AWS::ElasticLoadBalancingV2::Listener
|
|
|
AWS::ElasticLoadBalancingV2::TargetGroup
|
|
|
AWS::ElasticLoadBalancingV2::Listener
|
|
|
AWS::ElasticLoadBalancingV2::TargetGroup
|
|
控制平面入口
控制平面机器需要以下入口组。每个入口组都是一个 AWS::EC2::SecurityGroupIngress
资源。
入口组 |
描述 |
IP 协议 |
端口范围 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MasterIngressWorkerInternal
|
|
|
|
|
Kubernetes kubelet、调度器和控制器管理器
|
|
|
|
Kubernetes kubelet、调度器和控制器管理器
|
|
|
|
|
|
|
主节点 Ingress Worker Ingress 服务
|
|
|
|
|
|
|
|
主节点 Ingress Worker Geneve
|
|
|
|
|
|
|
|
主节点 Ingress Worker IPsec IKE
|
|
|
|
|
|
|
|
主节点 Ingress Worker IPsec NAT
|
|
|
|
|
|
|
|
主节点 Ingress Worker IPsec ESP
|
|
|
|
|
|
|
|
主节点 Ingress Worker 内部 UDP
|
|
|
|
主节点 Ingress Ingress 服务 UDP
|
|
|
|
主节点 Ingress Worker Ingress 服务 UDP
|
|
|
|
Worker Ingress
工作节点需要以下 Ingress 组。每个 Ingress 组都是一个AWS::EC2::SecurityGroupIngress
资源。
入口组 |
描述 |
IP 协议 |
端口范围 |
|
|
|
|
Worker Ingress Worker VXLAN
|
|
|
|
|
|
|
|
|
|
|
|
|
Kubernetes kubelet、调度器和控制器管理器
|
|
|
Worker Ingress Worker Kube
|
Kubernetes kubelet、调度器和控制器管理器
|
|
|
Worker Ingress Ingress 服务
|
|
|
|
Worker Ingress Worker Ingress 服务
|
|
|
|
|
|
|
|
Worker Ingress 主节点 Geneve
|
|
|
|
|
|
|
|
Worker Ingress 主节点 IPsec IKE
|
|
|
|
|
|
|
|
Worker Ingress 主节点 IPsec NAT
|
|
|
|
|
|
|
|
Worker Ingress 主节点 IPsec ESP
|
|
|
|
|
|
|
|
Worker Ingress 主节点 内部 UDP
|
|
|
|
Worker Ingress Ingress 服务 UDP
|
|
|
|
Worker Ingress 主节点 Ingress 服务 UDP
|
|
|
|
角色和实例配置文件
您必须在 AWS 中授予机器权限。提供的 CloudFormation 模板授予机器对以下AWS::IAM::Role
对象的Allow
权限,并为每组角色提供一个AWS::IAM::InstanceProfile
。如果您不使用这些模板,您可以授予机器以下广泛权限或以下单个权限。
集群机器
您需要以下机器的AWS::EC2::Instance
对象
-
一个引导机器。此机器在安装过程中需要,但在集群部署后可以将其移除。
-
三台控制平面机器。控制平面机器不受控制平面机器集的管理。
-
计算机器。您必须在安装过程中至少创建两台计算机器(也称为工作节点)。这些机器不受计算机器集的管理。