热门标签 | 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 开源社区经理

扫描上方二维码即刻注册


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 交换机配置:intg100unshintvlani1ipadd192.168.56.177qstelseuser-iv4authaaaproinsshupl3qsshuserpyt ... [详细]
  • CISCO ASA防火墙Failover+multiple context详细部署By 年糕泰迪[操作系统入门]
    一.文章概述本文主要就CISCOASA防火墙的高可用和扩张性进行阐述和部署。再cisco防火墙系列中主要有3种技术来实现高可用和扩张性。分别是Failover,multiplese ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 弹性云服务器ECS弹性云服务器(ElasticCloudServer)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
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社区 版权所有