EKS

学校给的AWS沙盒快过期了,剩下几十🔪也不想浪费,突然发现居然有给EKS的权限,想到前几天自建K8S集群的经历,虽然可以熟悉集群流程,但是倘若在生产环境下,还是有安全高可用的托管平台舒服。

架构结构

学习一个东西,肯定是先了解概念以及大概的结构,由大入微,最重要的是要不断实践和尝试,通过实际操作来加深对该工具或技术的理解。

k8s

首先是k8s,一个开源容器编排平台,源于Google的Borg。主要就是能够多平台进行自动化调度,修复,扩展,服务发现和负载,存储编排等重要功能。

1582188308711

经典七大件

  1. kube-apiserver:Kubernetes API服务器,提供了Kubernetes集群的API接口,负责接收和处理来自用户、控制器和其他组件的请求。

  2. kube-controller-manager:Kubernetes控制器管理器,包含多个控制器,负责监控集群状态并根据预定义的控制器逻辑进行调整,确保集群中的资源达到预期状态。

  3. kube-scheduler:Kubernetes调度器,负责根据Pod的调度策略(如资源需求、亲和性、反亲和性等)选择合适的Node节点来运行Pod。

  4. kubelet:每个Node节点上运行的Kubernetes代理,负责管理Node节点上的Pod和容器,与kube-apiserver通信,执行Pod的生命周期管理和监控。

  5. kube-proxy:Kubernetes网络代理,负责为Pod提供网络代理和负载均衡功能,实现Pod之间和Pod与外部网络的通信。

  6. etcd:分布式键值存储系统,用于存储Kubernetes集群的所有配置数据、状态信息和元数据,保证集群的一致性和可靠性。

  7. Container Runtime:容器运行时,负责在Node节点上创建和管理容器,常见的容器运行时包括Docker、containerd、CRI-O等。

EKS

EKS能够简化云上K8S的复杂性,提供一个高可用安全的控制平台,主要还可以集成其他服务,比如IAM、VPC、CloudWatch、ELB等。

image-20240630155419294

上面的一个架构图,也是能够很清晰的看出来EKS Conrtol Plane成为了管理k8集群的核心组件,然后通过网络负载均衡余kubectl通信。咋一看好像中间少了API Server,scheduler,controller-manager这些组件,但是估计是由在集成在EKS Control里面的,而且相比于自建k8s集群的一个vpc内,这里却分为了两个VPC一个是管理的VPC,另一个是节点的VPC。这应该是属于一种网络隔离方法。可能是为了集群的稳定。其次就是责任分离了。然后工作节点的服务通过ELB来进行负载均衡给用户。

工作流程

  1. 首先配置eks集群
  2. 创建一个或多个工作节点
  3. 选择工具。并且连接到EKS
  4. 在pod上部署应用程序

image-20240630165310994

集群创建

不得不说是真的方便,还能够同时集成多个插件和统一的管理。可惜了,后面有一些操作,权限不够用不了。

image-20240630183047481