热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于网络:使用-KubeSphere-管理-Amazon-EKS-Anywhere-集群

近日,亚马逊云科技开源了 AmazonEKSAnywhere。这个我的项目为AmazonEKS提供了一种新的部署模式,能够在本地数据中心应用虚拟机轻松创立和治理Kubernetes集群,并利用AmazonEKSDistro的劣势,为您的数据中心带来统一的Kubernetes运维治理体验。它能够对多个Kubernetes集群进行全生命周期治理,为用户灵便交付

Amazon EKS Anywhere 介绍

近日,亚马逊云科技开源了 Amazon EKS Anywhere。这个我的项目为 Amazon EKS 提供了一种新的部署模式,能够在本地数据中心应用虚拟机轻松创立和治理 Kubernetes 集群,并利用 Amazon EKS Distro 的劣势,为您的数据中心带来统一的 Kubernetes 运维治理体验。它能够对多个 Kubernetes 集群进行全生命周期治理,为用户灵便交付 Amazon EKS 容器服务。

Amazon EKS 可能帮忙您自动化集群治理,缩减老本,免去应用多个开源或第三方工具来操作 Kubernetes 集群的繁冗工作。您还能够构建本人的管理工具来创立 Amazon EKS Distro 集群、配置操作环境和更新软件。

通过 Amazon EKS Anywhere,你还能够取得亚马逊云科技对集群配置、机器操作系统和第三方集成的默认优化值,这些优化让你专一于业务翻新,而不是简单的组件兼容性或企业外部和云环境之间的部署兼容性。此外,你能够利用 Amazon EKS 控制台来查看你所有通过 Amazon EKS Anywhere 部署的 Kubernetes 集群。

Amazon EKS Anywhere 目前只反对 VMware vSphere,将来将反对裸机部署。

KubeSphere 介绍

KubeSphere 是基于 Kubernetes 构建的容器平台,齐全开源,并通过极简的界面交互提供多云与多集群治理、DevOps、可观测性、微服务治理、边缘计算、利用治理等性能,提供弱小的网络与存储管理能力,可能帮忙企业在私有云、虚拟化及物理机等异构基础设施上实现容器架构的疾速构建、部署及运维,实现利用的继续交付与全生命周期治理。

KubeSphere 的联邦集群治理性能能够把多个异构基础设施 Kubernetes 与 Amazon EKS 以及产品家族对立纳管,用户在部署利用时,能够把利用的多个正本依照业务需要散布到多个不同的 Kubernetes 资源池里,并通过 KubeSphere 进行对立运维治理,从下层构建实现跨区、跨集群的高可用。

2021年 1 月,KubeSphere 正式入驻 亚马逊云科技 Quick Start,为寰球用户部署云原生利用提供了一键部署 Amazon EKS 和 KubeSphere 的能力,通过 KubeSphere 丰盛的利用治理性能,帮忙用户减速云原生落地。

如果将 KubeSphere 和 Amazon EKS Anywhere 强强联合,会产生什么样的成果呢?本文就率领大家来上手实际一下。

本系列文章将会分成两篇进行介绍。本篇文章介绍 Amazon EKS Anywhere 以及如何装置 Amazon EKS Anywhere 和 KubeSphere;接下来有机会咱们将会介绍如何应用 KubeSphere 对立纳管 Amazon EKS Anywhere 和 Amazon EKS。

创立 Amazon EKS Anywhere 集群

前提

运行 Amazon EKS Anywhere 须要满足:

  • 一个运行了 vCenter 的 vSphere 6.7+ 环境
  • 可能部署 8-10 个虚拟机
  • vSphere 环境有运行中的 DHCP 服务为创立的工作负载提供服务
  • 一个在 vSphere 环境中可能提供给集群应用的网络
  • 把 OVA 模板导入到 vSphere 并制作成模板
  • 具备 vCenter 管理员权限
  • 一台用于执行命令的治理服务器

治理服务器要求:

  • CPU 架构:amd64
  • CPU 4核
  • 内存 16G
  • 磁盘 100G
  • 操作系统 Mac OS (10.15) / Ubuntu (20.04.2 LTS)
  • 可能通过 https/443 拜访 vCenter
  • 用户必须在 docker 用户组或是 root 用户,以确保有操作 docker 的权限
  • 有文件的写权限
  • 可能拜访以下 URL:
  1. public.ecr.aws
  2. anywhere-assets.eks.amazonaws.com (下载二进制、配置清单和 OVA 模板)
  3. distro.eks.amazonaws.com (下载 Amazon EKS Distro)
  4. d2glxqk2uabbnd.cloudfront.net (作为 Amazon EKS Anywhere 和 Amazon EKS Distro ECR 的存储仓库)
  5. api.github.com (如果不启用 GitOps 则不须要)

一个 Amazon EKS Anywhere 集群须要创立6到10虚拟机,每个节点资源需要:

  • CPU 2核
  • 内存 8G
  • 磁盘 100G

下载 OVA 镜像

首先须要下载 OVA 镜像,依据不同的操作系统和不同的 Kubernetes 版本抉择相应的 OVA 镜像:

  • Ubuntu with Kubernetes 1.21
  • Ubuntu with Kubernetes 1.20

导入模板

可应用 vCenter web 界面导入模板,此处咱不针对 vCenter 中导入模板进行详细描述,可参考文档 xxx。

模板增加实现后,须要创立名称为 “os:ubuntu” 的标记和名称为 “eksdRelease:kubernetes-1-20-eks-6” 的标记。

而后勾选创立的两个标记,点击调配即可。

设置治理服务器

治理服务器用来执行各种操作命令,须要先装置 docker 和 kubelet。

$ sudo apt update
$ sudo apt install -y docker.io
$ sudo usermod -a -G docker $USER
$ wget https://distro.eks.amazonaws.com/kubernetes-1-19/releases/4/artifacts/kubernetes/v1.19.8/bin/linux/amd64/kubectl
$ mkdir -p $HOME/bin
$ chmod +x kubectl
$ mv kubectl $HOME/bin/
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

*左滑查看更多

装置实现后,须要退出而后从新登录零碎从而获取精确的用户组权限和 PATH 环境。

装置最新版本的 eksctl(Amazon EKS Anywhere 所需的 eksctl 最低版本为 0.66.0)。

$ curl "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" \
    --silent --location \
    | tar xz -C /tmp
$ sudo mv /tmp/eksctl /usr/local/bin/

*左滑查看更多

装置 eksctl-anywhere。

$ export Amazon EKSA_RELEASE="0.5.0" OS="$(uname -s | tr A-Z a-z)"
$ curl "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/1/artifacts/eks-a/v${Amazon EKSA_RELEASE}/${OS}/eksctl-anywhere-v${Amazon EKSA_RELEASE}-${OS}-amd64.tar.gz" \
    --silent --location \
    | tar xz ./eksctl-anywhere
$ sudo mv ./eksctl-anywhere /usr/local/bin/

*左滑查看更多

创立集群应用的认证文件,用于 Amazon EKS Anywhere 集群节点 ssh 登陆认证。

$ ssh-keygen -f eks-a
$ cat eks-a.pub
  ssh-rsa AAAAB3NzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoE= root@localhost

*左滑查看更多

获取 vCenter 认证文件的 sha1 thumbprint。

# 装置 govc
$ wget -c https://github.com/vmware/govmomi/releases/download/v0.25.0/govc_Linux_x86_64.tar.gz -O - | tar -xz
$ chmod +x ./govc
$ mv ./govc /usr/local/bin
$ cd ..
$ rm -rf govc/
$ govc version -l
# 设置 vCenter 地址和管理员的用户明码
$ export GOVC_URL="xxx"
$ export VSPHERE_USERNAME=xxx
$ export VSPHERE_PASSWORD=xxx
# 获取 vCenter 认证文件 的 thumbprint
$ govc about.cert -k=true -thumbprint
$ xxx.xxx.xxx.xxx aa:bb:cc:xx:xx:xx:xx:cc:bb:aa

*左滑查看更多

创立集群配置文件

集群名称必须是小写字母,不要蕴含大写字母或特殊字符。

$ CLUSTER_NAME=prod
$ eksctl anywhere generate clusterconfig $CLUSTER_NAME \
   --provider vsphere > eksa-cluster.yaml

*左滑查看更多

以下是一个带正文的模板参考,应用时请删除中文正文。

创立 Amazon EKS Anywhere 集群

创立集群前,还须要设置 vSphere 的用户和明码。

# 设置你的 vCenter 管理员用户明码
$ export Amazon EKSA_VSPHERE_USERNAME=''
$ export Amazon EKSA_VSPHERE_PASSWORD=''

*左滑查看更多

最初创立集群。

$ eks-a create cluster -f ${CLUSTER_NAME}.yaml

*左滑查看更多

装置过程中你将看到如下输入。

在创立过程中,Amazon EKS Anywhere 将在集群名称目录(例如 $PWD/$CLUSTER_NAME/)创立 .kubeconfig 文件,你能够应用该文件通过 kubectl 查看集群状态和部署工作负载。

p$ export KUBECOnFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig
$ kubectl get ns

*左滑查看更多

如果你的集群是通过本地电脑创立的,你能够把 KUBECONFIG 文件保留到集群治理服务器上,同样你也能够把治理服务器上的 KUBECONFIG 文件保留到本地用于治理集群。

部署 KubeSphere v3.2.0

筹备长久化存储

Amazon EKS Anywhere 集群默认应用 亚马逊云科技 CSI 作为默认存储,这里将其替换为 OpenEBS 作为默认存储。

$ kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml

*左滑查看更多

查看 OpenEBS 命名空间下的 Pod,期待所有 Pod 启动实现。

$ kubectl get pods -n openebs

*左滑查看更多

待 OpenEBS 命名空间下的 Pod 都启动实现后,将 OpenEBS 设置为默认存储。

$ kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class": "true"}}}'

*左滑查看更多

在 Amazon EKS Anywhere 集群上部署 KubeSphere v3.2.0

(1) 在 eks-a 治理节点/治理服务器上执行以下命令部署 KubeSphere v3.2.0

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.0/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.0/cluster-configuration.yaml

*左滑查看更多

(2)查看 KubeSphere 装置日志

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

*左滑查看更多

(3)当看到”Welcome to KubeSphere!”,阐明装置实现。

#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

*左滑查看更多

本篇作者

张元涛

亚马逊云科技高级架构师

负责亚马逊云科技合作伙伴相干解决方案的建设以及合作伙伴生态单干。与合作伙伴一起,依据客户需要,剖析其在技术架构层面所遇到的挑战和将来的方向,设计和落地基于亚马逊云科技平台和合作伙伴产品的架构计划。曾在出名外企以及国内领导企业任解决方案架构师。在云以及网络等畛域有丰盛的教训,对于私有云服务以及架构有深刻的了解。

姚锐

KubeSphere 高级软件工程师

负责提供解决方案,开源我的项目 KubeEye 核心成员。

杨传胜

KubeSphere 布道师

KubeSphere 开源社区经理

扫描上方二维码即刻注册


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 成都服务器租赁适用于哪些网站业务部署——Vecloud专业解析
    成都,作为四川省的省会,不仅是西南地区唯一的副省级城市,也是国家重要的高新技术产业基地和商贸物流中心。Vecloud专业解析指出,成都服务器租赁服务特别适合各类网站业务的部署,尤其是需要高效、稳定和安全的在线应用。无论是电子商务平台、内容管理系统还是大数据分析,成都的服务器租赁都能提供强大的支持,满足不同企业的需求。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
author-avatar
mobiledu2502938445
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有