我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么用KOps在AWS上部署和管理Kubernetes

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么用KOps在AWS上部署和管理Kubernetes

本篇内容主要讲解“怎么用KOps在AWS上部署和管理Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用KOps在AWS上部署和管理Kubernetes”吧!

Kubernetes作为容器编排的领导者地位已经不容置疑,可是Kubernetes还是面临这一些问题,一个是学习曲线非常陡峭,从容器到K8s你仍然要学习很多东西,另一个是部署,要在部署一套K8s并不容易,你有一些选择:

  • minikube minikube在你的本机的VM中安装一个单节点的K8s集群,但是这个只能用于本地测试和学习,不能用于真正的生产和大规模使用。

  • 裸机 bare metal 可以自己在裸机(或者虚机)上安装,但是要自己管理物理资源,配置网络和驱动,很麻烦。如果想挑战自己的话可以去参考官方文档 

  • 云服务 (cloud hosted solution),各大云厂商都推出了自己的K8s的云方案。云服务优势明显,但通常云服务的master是由云厂商控制,用户自己对集群的控制比较少,而且,云服务使得用户把自己的业务绑定在某个云厂商。例如:

    • Google GKE

    • Azure AKS

    • Amazon EKS

    • IBM Cloud Kubernetes Service

    • 阿里 容器服务

  • 最后,我们希望使用云,但是又不想受到云厂商的限制,这个时候我们可以使用例如以下个工具在云上部署自己的K8s。例如:

    • Kops

    • Kubespray

我们今天就看看如何使用kops在AWS上部署一个K8s的cluster。

  • 假定所有操作在Linux客户端中完成,Mac或者其它客户端自行搜索。

  • 假定你有一个拥有对应权限的AWS account。

安装客户端

安装kubectl,kubectl是K8s的命令行客户端,Kops会使用该客户端进行k8s的配置。

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectlchmod +x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectl

安装kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64chmod +x kops-linux-amd64sudo mv kops-linux-amd64 /usr/local/bin/kops

配置AWS资源

首先要安装AWS cli

实现我们需要一个AWS用户用于运行Kops,该用户需要具有以下的权限:

AmazonEC2FullAccessAmazonRoute53FullAccessAmazonS3FullAccessIAMFullAccessAmazonVPCFullAccess

用CLI创建对应的用户组,用户和access key:

aws iam create-group --group-name kopsaws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kopsaws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kopsaws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kopsaws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kopsaws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kopsaws iam create-user --user-name kopsaws iam add-user-to-group --user-name kops --group-name kopsaws iam create-access-key --user-name kops

记录下最后一步创建的用户SecretAccessKey 和 AccessKeyID,并在客户端中配置,导出到环境变量

# configure the aws client to use your new IAM useraws configure           # Use your new access and secret key hereaws iam list-users      # you should see a list of all your IAM users here# Because "aws configure" doesn't export these vars for kops to use, we export them nowexport AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)

用户配置好了可以配置DNS,这个是可选项,我们先略过。

Kops把K8s集群的配置存储在AWS的S3中,每一个集群的配置对应于一个S3文件,所有我们创建一个S3的bucket用于存储集群的配置。

export BUCKET=<bucket-name>aws s3api create-bucket \    --bucket $BUCKET \    --region us-west-2 \    --create-bucket-configuration  LocationConstraint=us-west-2aws s3api put-bucket-versioning --bucket $BUCKET  --versioning-configuration Status=Enabled

好了,准备完毕,我们可以开始创建K8s集群了。

创建集群

首先, 如果你的客户端没有ssh key,创建一个

ssh-keygen -t rsa -C "your_email@example.com"

配置环境变量,定义集群的名字和配置的url

export NAME= <cluster-name>.k8s.localexport KOPS_STATE_STORE=s3://$BUCKET

创建集群之前,查看一下有哪些可用的AZ

aws ec2 describe-availability-zones --region us-west-2

我当前在使用 us-west-2的region可用的az是这三个

{    "AvailabilityZones": [        {            "State": "available",            "Messages": [],            "RegionName": "us-west-2",            "ZoneName": "us-west-2a"        },        {            "State": "available",            "Messages": [],            "RegionName": "us-west-2",            "ZoneName": "us-west-2b"        },        {            "State": "available",            "Messages": [],            "RegionName": "us-west-2",            "ZoneName": "us-west-2c"        }    ]}

那么我们就选则在us-west-2a中创建

kops create cluster \    --zones us-west-2a \    ${NAME}

注意这一步只是生成了集群的配置文件,并存储在S3中。

可以使用kops命令,修改配置:

kops edit cluster ${NAME}

如果配置没有问题,就可以部署了:

kops update cluster ${NAME} --yes

缺省的情况下,kops会创建所有对应的AWS资源,包含VPC,子网,EC2,Auto Scaling Group,ELB,安全组等等。

如果需要安装在特定的子网,在创建集群时可以指定子网的id。另外,也支持跨AZ的HA配置。

集群安装好之后,需要几分钟时间启动,我们可以用kubectl来查看一下状态(Kops会自动把cluster的配置写到~/.kube/config 文件中作为缺省配置):

kubectl cluster-info

建议安装kube-dashboard,可以用UI来管理集群,Linux终端狂人自行略过。

怎么用KOps在AWS上部署和管理Kubernetes

在集群不需要的时候,可以用kops删除集群:

kops delete cluster --name ${NAME}

扩展和暂停集群

在云上的K8s集群可以很方便的扩展,如果你的集群的计算资源都用的差不多了,你希望扩展你的集群的时候,有两种办法。

一是直接修改AWS的auto scaling group。KOps会在AWS上创建两个auto scaling group,一个用于Node,另一用于Master,通常我们只要修改Node所在的Auto Scaling Group的number就好了。

怎么用KOps在AWS上部署和管理Kubernetes

Kops的缺省设置是2,你可以把对应的数值设置成自己需要的数字。

另一个就是通过Kops来修改

kops edit ig nodes

把maxSize和minSize都设置成需要的值,然后更新

kops update cluster --yeskops rolling-update cluster

使用rolling-update可以保证在更新的时候业务不会中断。

另外,有人可能会问,我希望不用的时候能把集群暂停,这样就不会使用很多的AWS系统资源了,这要怎么办。因为Auto Scaling Group的存在,如果直接stop对应的EC2实例,Auto Scaling Group会创建新的实例的取代,所以这个方法是不管用的。其实办法很简单,只要把对应的Auto Scaling Group的数值设置为0就好了。

同样可以在AWS中直接修改Master和Node所在的Auto Scaling Group,或者在Kops中修改。

注意在Kops中修改,需要调用如下的命令来获得Master所在group的名字。

$ kops get igUsing cluster from kubectl context: staging.cluster-name.comNAMEROLEMACHINETYPEMINMAXSUBNETSmaster-us-west-2aMasterm3.medium00us-west-2anodesNodet2.medium00us-west-2a

到此,相信大家对“怎么用KOps在AWS上部署和管理Kubernetes”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么用KOps在AWS上部署和管理Kubernetes

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用KOps在AWS上部署和管理Kubernetes

本篇内容主要讲解“怎么用KOps在AWS上部署和管理Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用KOps在AWS上部署和管理Kubernetes”吧!Kubernet
2023-06-19

Kubernetes在阿里云服务器上的部署和管理

随着云计算的普及和快速发展,容器化技术在云计算领域中的地位日益突出。Kubernetes,作为一个开源的容器编排系统,因其高效、灵活、可扩展等特性,已成为许多企业进行容器化部署和管理的首选。本文将详细介绍如何在阿里云服务器上部署和管理Kubernetes。部署Kubernetes:首先,你需要在阿里云服务器上安装
Kubernetes在阿里云服务器上的部署和管理
2023-12-12

Kubernetes容器集群管理环境怎么部署

本文小编为大家详细介绍“Kubernetes容器集群管理环境怎么部署”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kubernetes容器集群管理环境怎么部署”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。通过K
2023-06-29

Kubernetes应用部署问题怎么处理

这篇文章主要讲解了“Kubernetes应用部署问题怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes应用部署问题怎么处理”吧!1、应用部署问题处理的整体思路在将容器
2023-06-04

怎么在Kubernetes部署期间正确处理DB模式

这篇文章主要介绍怎么在Kubernetes部署期间正确处理DB模式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文:Architecture(架构)让我们思考一下以下“two-tier”场景。 一个具有多个无状态
2023-06-04

NoSQL在容器化环境中怎么部署和管理

在容器化环境中部署和管理NoSQL数据库,可以采用以下几种方法:使用Docker容器:可以将NoSQL数据库打包成Docker镜像,并在容器中运行,通过Docker Compose或Kubernetes等容器编排工具进行管理和部署。使用容
NoSQL在容器化环境中怎么部署和管理
2024-05-07

阿里云ECS部署Kubernetes轻松管理大规模应用和服务

随着云计算的发展,大规模应用和服务的管理变得越来越复杂。Kubernetes是一个开源的容器编排系统,可以帮助我们轻松地管理容器化应用和服务。然而,部署Kubernetes需要一定的技术和资源。在阿里云上部署Kubernetes,可以让我们省去大量的时间和精力,专注于业务的开发和运维。正文:一、什么是Kubern
阿里云ECS部署Kubernetes轻松管理大规模应用和服务
2023-12-09

集群服务器怎么部署和管理

集群服务器的部署和管理需要以下步骤:1. 选择合适的集群管理软件:如Hadoop、Kubernetes、OpenStack等。2. 确定集群规模和硬件配置:确定需要多少台服务器、每台服务器的配置、网络拓扑等。3. 安装操作系统和必要的软件:
2023-06-11

Kubernetes 上安装 EMQ X 系列文章之三 :使用 Helm 管理、部署 EMQ X 集群

Helm 介绍Helm 是管理 Kubernetes 包的工具,Helm 能提供下面的能力:创建新的 charts将 charts 打包成 tgz 文件与 chart 仓库交互安装和卸载 Kubernetes 的应用管理使用 Helm 安装
2023-06-03

在Gitlab上怎么部署Golang应用程序

这篇文章主要介绍“在Gitlab上怎么部署Golang应用程序”,在日常操作中,相信很多人在在Gitlab上怎么部署Golang应用程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Gitlab上怎么部署G
2023-07-06

win10怎么部署映像服务和管理工具

要部署映像服务和管理工具,您需要按照以下步骤进行操作:1. 打开“控制面板”,并点击“程序”。2. 在“程序和功能”下找到“启用或关闭Windows功能”。3. 在弹出的“Windows功能”窗口中,找到“Windows映像服务(WDS)”
2023-10-10

怎么在不同平台上安装和部署Golang

今天小编给大家分享一下怎么在不同平台上安装和部署Golang的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、Linux平台
2023-07-05

Elasticsearch分布式搜索在云计算平台上的部署与管理(如何在云计算平台上部署和管理Elasticsearch分布式搜索引擎?)

Elasticsearch分布式搜索在云计算平台上的部署和管理涉及选择云提供商、创建集群、配置安全和网络。管理包括监控、备份、升级、容量规划和高可用性。云平台提供按需定价、自动化、集成和容器支持等特有功能。最佳实践包括选择合适实例类型、配置索引设置、启用副本、使用快照和实施安全措施。通过利用云计算平台的优势,组织可以高效部署和管理Elasticsearch集群,满足大数据搜索和分析的需求。
Elasticsearch分布式搜索在云计算平台上的部署与管理(如何在云计算平台上部署和管理Elasticsearch分布式搜索引擎?)
2024-04-02

MongoDB在云原生环境中怎么部署与管理

在云原生环境中部署和管理MongoDB通常可以通过以下几种方式:使用托管服务:许多云服务提供商都提供了托管的MongoDB服务,用户可以直接在这些云平台上创建MongoDB实例,并且由云服务商负责管理和维护数据库服务。使用容器化部署:将M
MongoDB在云原生环境中怎么部署与管理
2024-05-07

怎么在Kubernetes上运行高可用的WordPress和MySQL

小编给大家分享一下怎么在Kubernetes上运行高可用的WordPress和MySQL,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Kubernetes上运行
2023-06-15

怎么使用Istio进行多集群部署管理

这篇文章主要讲解了“怎么使用Istio进行多集群部署管理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Istio进行多集群部署管理”吧!在多控制平面拓扑的配置中,每个 Kuberne
2023-06-03

新手在服务器上怎么用IIS部署建站

本文小编为大家详细介绍“新手在服务器上怎么用IIS部署建站”,内容详细,步骤清晰,细节处理妥当,希望这篇“新手在服务器上怎么用IIS部署建站”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一步:双击IIS图标,运
2023-07-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录