eks-workshop

EKS Workshop 动手实验说明

本文档目的是指导用户熟悉建立Amazon EKS集群的过程,并利用AWS相关的服务和插件部署一套常见应用程序。

部署流程如下:

1. 准备工作

a. 请确保您有海外AWS账号和足够的资源配额

2. 创建Cloud9

点击这里启动Cloud9开发环境 填入Cloud9名称,Next Step进入到下一步:

其它步骤可以保持默认参数不变,最后一步点击Create Environment. Cloud9新环境创建需要一分钟左右。

3. 配置Cloud9环境

4. 创建EKS集群

5. 配置Helm环境

5. 创建示例应用程序 2048小游戏

在本部分中,您将创建一个2048小游戏来测试新集群。

  $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/2048/2048-namespace.yaml
  $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/2048/2048-deployment.yaml
  $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/2048/2048-service.yaml

6. 创建AWS ALB Ingress controller

a. 部署 ALB ingress controller

  $ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
  $ helm repo update
  $ helm install incubator/aws-alb-ingress-controller \
  --set clusterName=eks-workshop \
  --set autoDiscoverAwsRegion=true \
  --set autoDiscoverAwsVpcID=true

b. 部署 ingress

下载ingress YAML:

$ curl -sS https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/2048/2048-ingress.yaml -o 2048-ingress.yaml

编辑 2048-ingress.yaml 文件, 在annotations中增加 alb.ingress.kubernetes.io/target-type: ip. 本示例中我们将用ip mode 作为目标类型,这样ALB的流量将会直接转发到Pod上。 然后创建ingress

$ kubectl apply -f 2048-ingress.yaml

获取ingress资源的Address属性:

$ kubectl -n 2048-game describe ing/2048-ingress

c. 用浏览器打开上一步的ALB地址。如果不能正常显示,等待一分钟左右,或者进入EC2控制台查看ALB的状态。

7. Amazon EKS结合Amazon EC2 Spot

参考此文档以创建基于spot fleet的EKS集群。

8. 清理环境

a. 删除ingress

  $ kubectl delete -f 2048-ingress.yaml

b. 删除EKS集群

  $ eksctl delete cluster eks-workshop