查看原文
其他

跨多集群统一纳管开源 EKS-D 与 Amazon EKS(上)

郭峰,李林,鹏飞 KubeSphere云原生 2022-04-18

AWS 发布开源 EKS-D

KubeSphere 社区与 AWS 在上周刚刚联合官宣了 KubeSphere 正式登陆 AWS Quick Starts,而上个月初 AWS 正好也开源了 Kubernetes 的发行版 EKS-D(EKS Distribution),AWS 大中华区产品部容器服务高级产品经理陈展凌老师也在 KubeSphere Meetup 为大家详细解读了 EKS-D。

除了集成原生的 Kubernetes,EKS-D 在 Kubernetes 基础上还做了许多延展,让用户能更方便地用起来,比如集成了 Kubernetes 集群所需的核心组件以及网络、存储、容器运行时等服务。

关于 EKS-D 相对于原生 Kubernetes 的优势,大家可以参考 AWS容器三大新品:K8s发行版,免费镜像库和“Game Changer”AWS Proton 或 EKS-D 官网的释义。事实上,AWS 发布 EKS-D 重大意义在于延展了 Amazon EKS 的生态,让用户在本地更多环境中建立与 Amazon EKS 对接的环境,用户可以在云上、本地以及任何基础设施中运行 EKS 集群,实现混合云战略

KubeSphere 与 EKS-D

KubeSphere 社区也有用户向我们社区官方提问说,KubeSphere 内部怎么看待 AWS 新开源 EKS-D?算不算竞品?

我们很高兴看到 EKS-D 开源,陈展凌老师在 KubeSphere Meetup 上也提到 KubeSphere 和 EKS-D 其实是互补关系,未来 EKS-D 与 KubeSphere 也会保持合作。EKS-D 解决了原生 Kubernetes 底层管理的复杂度,而 KubeSphere 降低了开发者与运维人员在上层的应用与集群管理的成本。

大家都知道 Kubernetes 迭代速度飞快,每三到四个月就会更新一次版本,在本地使用 Kubernetes 需要花大量时间跟进 Kubernetes 上游的版本更新,如果跟不上这个节奏,那将面临许多风险,比如兼容性问题和安全风险。而 EKS-D 将会与 Amazon EKS 保持同步,解决本地环境手动升级维护 Kubernetes 的痛点。

然而,也有用户抱怨说,我引入了新的 EKS-D 后,要管理多个 EKS-D 和 Amazon EKS 又会是一个新的痛点,软件管理的复杂性就会像滚雪球一样越滚越大

对于一个希望跨公有云与数据中心统一纳管 EKS-D 与 Amazon EKS 的用户来说,如何打通数据中心的 EKS-D 与公有云上的 Amazon EKS 间的网络,如何构建多集群可观察性,如何跨多集群统一分发应用,如何跨多集群创建 CI/CD 流水线,如何对多集群进行多租户权限的管理,都会是不小的挑战。

IT 行业有一句名言叫做“软件工程没有银弹”,业界虽然还没有一个能完美解决混合云管理存在的诸多问题的工具,但 KubeSphere 正在往 Kubernetes 混合云管理的方向快速发展。KubeSphere 在 v3.0 基于 Kubefed 实现了多集群管理,正好可以帮助用户来解决统一纳管 EKS-D 与 Amazon EKS 的种种挑战

我们在最近几期的文章中会出一个完整系列的教程,演示如何部署 EKS-D 和创建 Amazon EKS,并通过 KubeSphere 来进行统一纳管这两套集群环境,实现多集群环境的应用分发、多租户管理、CI/CD 和可观察性。

安装 EKS-D

在本期文章,我们将演示如何在本地安装一个 EKS-D 集群,然后基于 EKS-D 部署 KubeSphere。

由于 EKS-D 还未在 GitHub 上发布正式版本,但 snap 已提供了 EKS-D 的安装,因此我们在本文使用 snap 安装。当然你也可以自行 build。本文使用 Ubuntu 18.04 部署 EKS-D 集群。

使用 Snap 安装 EKS-D

sudo snap install eks --classic --edge

启动 EKS-D 集群

eks start       # 若报无法找到 eks 命令,可将 /snap/bin 加入环境变量 export PATH=$PATH:/snap/bin

为 kubectl 设置别名(alias)


若跳过此步骤,那么后续执行命令需要用 eks kubectl 来查询。

alias kubectl='eks kubectl'

查看 EKS-D 集群节点状态

可以看到 EKS-D 集群已经启动,内置的 CONTAINER-RUNTIME 是 Containerd

kubectl get node -o wide
# NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME# i-02emag0c Ready <none> 169m v1.18.9-eks-1-18-1 192.168.6.3 <none>        Ubuntu 18.04.5 LTS   4.15.0-121-generic   containerd://1.3.7

基于 EKS-D 部署 KubeSphere

在已有 EKS-D 或 Kubernetes 集群部署 KubeSphere 非常简单,两条命令即可完成安装。

以下命令使用最新的 latest 分支代码进行安装规避兼容性问题,若在生产环境部署使用,请参考 KubeSphere 中文论坛 KubeSphere on EKS-D 文档。

关于详细的配置文件释义和 KubeSphere 可插拔功能组件的安装,可参考 KubeSphere 官网文档。

# 部署 KubeSphere kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/kubesphere-installer.yamlkubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/cluster-configuration.yaml

查看部署日志

执行以下命令查看 Installer 的安装日志,若安装成功,则会自动提示 KubeSphere Console 登录信息。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

登录 KubeSphere 验证 EKS-D


使用默认的 admin 账号与密码登录 KubeSphere Console,然后进入节点管理查看 EKS-D 集群与节点信息。

未完待续

我们将在下一期文章中演示如何使用 KubeSphere on AWS Quickstart 创建 KubeSphere + Amazon EKS,然后使用 KubeSphere 统一纳管 EKS-D 和 Amazon EKS。欢迎关注 KubeSphere 云原生公众号获取后续更新。

关于 KubeSphere

KubeSphere 是在 Kubernetes 之上构建的开源容器混合云,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。

KubeSphere 已被 Aqara 智能家居、本来生活、新浪、华夏银行、四川航空、国药集团、微众银行、紫金保险、中通、中国人保寿险、中国太平保险、中移金科、Radore、ZaloPay 等海内外数千家企业采用。KubeSphere 提供了开发者友好的向导式操作界面和丰富的企业级功能,包括多云与多集群管理、Kubernetes 资源管理、DevOps (CI/CD)、应用生命周期管理、微服务治理 (Service Mesh)、多租户管理、监控日志、告警通知、存储与网络管理、GPU support 等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。

✨ GitHub:https://github.com/kubesphere
💻 官网(中国站):https://kubesphere.com.cn
👨‍💻‍ 微信群:请搜索添加群助手微信号 kubesphere

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存