文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-19 10:03

关注

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

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

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

安装客户端

安装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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯