Kubernetes 集群和数量 Pods
Kubernetes Clusters and number of Pods
我正在建立一个新项目,其中将包含许多微服务(Spring 启动应用程序)。我计划使用 Kubernetes/Docker 并部署到 AWS。
将有 5 个独立的应用程序(微服务)通过 REST 相互通信 api。
问题
我必须创建多少个集群?
我可以只创建一个集群,其中的节点有多个 Pods(即每个节点 5 Pods 个)吗?然后 AWS 将自动扩展集群中的节点。
例如
+-------------+ +-------------+
| Node 1 | | Node 2 |
+-------------+ +-------------+
| Pod/App1 | | Pod/App1 |
| Pod/App2 | | Pod/App2 |
| Pod/App3 | | Pod/App3 |
| Pod/App4 | | Pod/App4 |
| Pod/App5 | | Pod/App5 |
+-------------+ +-------------+
您只需要创建一个集群,是的,至少有一个节点。您的所有 pods 分配都将由 Kubernetes 自动管理。
如果您的应用程序需要直接相互通信,您甚至可以使用 http://your_Service_name 直接调用它们:由于这个网络,调用将保留在集群内并且是私有的Kubernetes 提供的机制。
是的,您可以使用一个 AWS EKS,该 EKS 具有一个托管节点组和两个节点来 运行 您的微服务。要创建一个,就像 运行 宁一个命令 eksctl create cluster. One thing to note is currently AWS EKS do not automatically scale node, you need to install cluster autoscaler 一样简单,它将为您缩放 up/down 节点数量。
一个AWS EKS就够了。但是要 运行 您的服务,这个集群必须有一个包含两个节点的托管节点组。
看看this documentation。您可以在这里找到具有不同名称的基本集群创建:
eksctl create cluster --name=cluster-1 --nodes=2
NOTE:
EKS supports versions 1.18
, 1.19
, 1.20
and 1.21
(default). With eksctl
you can deploy any of the supported versions by passing --version
.
eksctl create cluster --version=1.18
如果您想查看在使用 eksctl
、运行 创建集群期间可以指定的大多数选项,请执行以下命令:
eksctl create cluster --help
在 this documentation 可以找到配置文件的示例。
关于自动缩放,请参阅this doc。
Amazon EKS supports two autoscaling products. The Kubernetes Cluster Autoscaler and the Karpenter open source autoscaling project.
在部署 Cluster Autoscaler 之前,请注意 先决条件 您必须满足:
- An existing Amazon EKS cluster – If you don’t have a cluster, see Creating an Amazon EKS cluster.
- An existing IAM OIDC provider for your cluster. To determine whether you have one or need to create one, see Create an IAM OIDC provider for your cluster.
- Node groups with Auto Scaling groups tags. The Cluster Autoscaler requires the following tags on your Auto Scaling groups so that they can be auto-discovered.
- If you used
eksctl
to create your node groups, these tags are automatically applied.
另请参阅:
我正在建立一个新项目,其中将包含许多微服务(Spring 启动应用程序)。我计划使用 Kubernetes/Docker 并部署到 AWS。
将有 5 个独立的应用程序(微服务)通过 REST 相互通信 api。
问题
我必须创建多少个集群?
我可以只创建一个集群,其中的节点有多个 Pods(即每个节点 5 Pods 个)吗?然后 AWS 将自动扩展集群中的节点。
例如
+-------------+ +-------------+
| Node 1 | | Node 2 |
+-------------+ +-------------+
| Pod/App1 | | Pod/App1 |
| Pod/App2 | | Pod/App2 |
| Pod/App3 | | Pod/App3 |
| Pod/App4 | | Pod/App4 |
| Pod/App5 | | Pod/App5 |
+-------------+ +-------------+
您只需要创建一个集群,是的,至少有一个节点。您的所有 pods 分配都将由 Kubernetes 自动管理。
如果您的应用程序需要直接相互通信,您甚至可以使用 http://your_Service_name 直接调用它们:由于这个网络,调用将保留在集群内并且是私有的Kubernetes 提供的机制。
是的,您可以使用一个 AWS EKS,该 EKS 具有一个托管节点组和两个节点来 运行 您的微服务。要创建一个,就像 运行 宁一个命令 eksctl create cluster. One thing to note is currently AWS EKS do not automatically scale node, you need to install cluster autoscaler 一样简单,它将为您缩放 up/down 节点数量。
一个AWS EKS就够了。但是要 运行 您的服务,这个集群必须有一个包含两个节点的托管节点组。
看看this documentation。您可以在这里找到具有不同名称的基本集群创建:
eksctl create cluster --name=cluster-1 --nodes=2
NOTE: EKS supports versions
1.18
,1.19
,1.20
and1.21
(default). Witheksctl
you can deploy any of the supported versions by passing--version
.eksctl create cluster --version=1.18
如果您想查看在使用 eksctl
、运行 创建集群期间可以指定的大多数选项,请执行以下命令:
eksctl create cluster --help
在 this documentation 可以找到配置文件的示例。
关于自动缩放,请参阅this doc。
Amazon EKS supports two autoscaling products. The Kubernetes Cluster Autoscaler and the Karpenter open source autoscaling project.
在部署 Cluster Autoscaler 之前,请注意 先决条件 您必须满足:
- An existing Amazon EKS cluster – If you don’t have a cluster, see Creating an Amazon EKS cluster.
- An existing IAM OIDC provider for your cluster. To determine whether you have one or need to create one, see Create an IAM OIDC provider for your cluster.
- Node groups with Auto Scaling groups tags. The Cluster Autoscaler requires the following tags on your Auto Scaling groups so that they can be auto-discovered.
- If you used
eksctl
to create your node groups, these tags are automatically applied.
另请参阅: