0
点赞
收藏
分享

微信扫一扫

kops 在AWS上安装k8s

飞进科技 2022-08-08 阅读 59

概述

在AWS上安装k8s有很多方式,比如可以用传统的kubeadmin安装,缺点是整个VPC和EC2的环境都得自己先搭建出来;也可以考虑用eksctl安装,优点是快捷省事,而且整个AWS的架构都可以一起安装了,master node节点完全托管给AWS;还有一种比较常用的方式就是kops安装。kops和eksctl类似,安装可以连vpc和ec2 autoscaling等架构一起安装,但是所有的master node和 worker node都是用户自己管理。如果是企业级的安装配置,一般推荐使用eksctl或者 kops安装,前者有AWS官方技术支持,后者有kubernetes的官方技术支持。而且比起eksctl而言,kops可以直接导出对应的terraform code 而不需要手动编写。

下面看看如何实现的。

操作

创建S3 bucket

和terraform state file类似,我们也需要创建一个S3 bucket来存放我们的kops state 文件

aws s3api create-bucket --bucket kops-state-storage-cluster-yl --region ap-southeast-2 --create-bucket-configuration LocationConstraint=ap-southeast-2

image.png

创建一个subdomain

kops是基于域名的。我在做测试的时候,我的主域名是存在一个aws的账号的route53中,但是我测试的是另外一个aws账号,因此我把子域名的NS 服务器都在对应的主域名里面添加NS记录。
比如,在当前测试的AWS账号里面我创纪录一个yuanli.exedev.com.au 的hosted zone

image.png

在另外一个AWS账号中,在exedev.com.au的hosted zone里面,我需要创建一个NS 记录,添加上面的的NS server
image.png

等待一分钟之后,就可以测试了。随便创建一个A 记录,应该在电脑上就能解析出来了。

创建一个集群cluster

接下来,可以创建集群了。命令如下

export KOPS_STATE_STORE=s3://kops-state-storage-cluster-yl

export NAME=yuanli.exedev.com.au

kops create cluster --cloud aws --name ${NAME} --zones ap-southeast-2a kops update cluster --name yuanli.exedev.com.au --yes –admin

他会自动创建VPC,subnet 和 autoscaling group
image.png

image.png

image.png

编辑集群cluster

默认情况下,他会创建一个master和一个worker node
image.png

我们可以修改master或者worker node的节点数

kops get instancegroups
kops edit instancegroups nodes-ap-southeast-2a
kops update cluster --name yuanli.exedev.com.au --yes --admin

image.png

image.png

测试

下面简单的测试一下,起一个deployment,里面是nginx,然后直接用loadbalancer的模式暴露出端口,他会自动创建一个CLB的load balancer。如果需要创建alb或者nlb,那么还需要额外安装alb ingress controller

kubectl get node
kubectl create deployment my-nginx --image=nginx --replicas=1 --port=80; 
kubectl expose deployment my-nginx --port=80 --type=LoadBalancer;
kubectl get svc

等待几分钟之后,service 就绪,clb创建成功,我们可以直接访问

image.png

删除集群

Kubectl delete svc my-nginx
Kubectl delete deploy my-nginx
Kops delete cluster –name ${NAME} --yes
举报

相关推荐

0 条评论