【技术分享】Amazon EKS- 不同的服务根据路径实现 ALB 的跳转
![【技术分享】Amazon EKS-不同的服务根据路径实现ALB的跳转](https://static001.geekbang.org/infoq/b5/b52acaa82ef115e19f4e95c3326abf19.jpeg)
Amazon Elastic Kubernetes Service
以下简称-Amazon EKS
Amazon EKS 是一项托管 Kubernetes 服务,Amazon EKS 可自动管理负责安排容器、管理应用程序可用性、存储集群数据和其他关键任务的 Kubernetes 控制面板节点的可用性和可扩展性。通过 Amazon EKS,您可以利用亚马逊云科技基础设施的所有性能、规模、可靠性和可用性,以及与亚马逊云科技网络和安全服务的集成。
Amazon EKS 已成为众多客户在亚马逊云科技上运行和管理容器服务的首选,随着越来越多的项目部署在 Amazon EKS 中,如何根据用户对 EKS 集群不同的管理需求授予不同的权限,Amazon EKS 提供了与 AWS IAM 的集成,允许将 IAM 用户与 Kubernetes 集群中的角色绑定在一起,从而实现对集群资源的访问控制。通过这种方式,可以实现统一的身份认证和授权管理,简化集群权限管理的流程,并确保与亚马逊云科技账户的一致性。
本文介绍了如何在亚马逊云科技上创建负载均衡器,选择创建应用程序负载均衡器,配置路由并创建目标组。重点在于帮助大家如何根据不同的路径选择不同的目标组,以实现更精细的服务调度。
01 准备工作
1. 创建 EKS 集群
![](https://static001.geekbang.org/infoq/13/13b0f4eb67cbfdc7bcd8fc62e37b5bf5.png)
2. 创建 EC2 访问客户端及配置
![](https://static001.geekbang.org/infoq/c9/c9b5d7f40c7501c35cdfa662672b12e4.png)
![](https://static001.geekbang.org/infoq/8a/8a350288d8b6c1ba4489b370e695f361.png)
![](https://static001.geekbang.org/infoq/df/dfcacd6f4e3eda83fca809848c2c4eed.png)
编辑
安装更新 aws cli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install 退出当前窗口重新登录[ec2-user@ip-172-32-13-194 ~]$ sudo su -
Last login: Mon Apr 24 09:23:58 UTC 2023 on pts/0
[root@ip-172-32-13-194 ~]# aws --version
aws-cli/2.11.15 Python/3.11.3 Linux/5.10.176-157.645.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
安装 kubectl
02 部署控制器
1. 创建 OIDC 提供商
![](https://static001.geekbang.org/infoq/02/02210b635b19edc7c4588644b7eefe2a.png)
2. 创建控制器角色
角色权限如下
![](https://static001.geekbang.org/infoq/e7/e706d02b56c926c96dffc5c5977a295b.png)
3. 创建服务账户
![](https://static001.geekbang.org/infoq/c2/c2eee7c8c3d55a1bc387425a4b983217.png)
![](https://static001.geekbang.org/infoq/de/de6254e6cf119c3e2a9598ad21e9b157.png)
4. 创建 ALB 控制器
安装 helm
![](https://static001.geekbang.org/infoq/8d/8d9c99bab2d495c7b0575792ad22a15e.png)
![](https://static001.geekbang.org/infoq/1b/1b3228488c62f03c893019ebedc13369.png)
03 测试
1. 新建两个服务
![](https://static001.geekbang.org/infoq/49/49a13cd168f24c230686cf5e22e18033.png)
![](https://static001.geekbang.org/infoq/dd/dd267cf1ed3f4dfdf55a8b82090dfabb.png)
2. 创建 ingress
以两个 service 为路径,跳转不同服务
![](https://static001.geekbang.org/infoq/ba/ba67904795cabf52d5297228983356ca.png)
通过标签将不同路径跳转不同的目标组
![](https://static001.geekbang.org/infoq/1c/1c94d1bba4054b440e443e4f40b5c0a2.png)
目标组注册不同的目标,实现服务的跳转
![](https://static001.geekbang.org/infoq/eb/eb8affb6fe866355e7895d2d2a5cee91.png)
![](https://static001.geekbang.org/infoq/d1/d15a371e87013c92fde088c15899387a.png)
3. 查看控制,访问测试
![](https://static001.geekbang.org/infoq/95/9500c67c565c007f386e26d7d01d6afa.png)
![](https://static001.geekbang.org/infoq/e2/e2b2173272b9c47d9e8ffcad6af26c14.png)
04 FAQ
1. 在创建 ingress 后,无法看到 ALB 地址
![](https://static001.geekbang.org/infoq/60/60edd1933fc7009e94c581dd01a2f94b.png)
查看日志发现可调用子网小于 1
需要给子网打上标签
![](https://static001.geekbang.org/infoq/dc/dc83810cc3c5f65f35f49abf01448c67.png)
2. 在将一条 action 的 tg 注释掉后,这条路径将不能访问
![](https://static001.geekbang.org/infoq/18/18b4054c15b7e3bf5e45d77e890c6981.png)
![](https://static001.geekbang.org/infoq/a0/a0805fb2f21de16e17e887069a4a9303.png)
3.name: use-annotation 调用以上定义的 tg,不可删除,删除后报错
版权声明: 本文为 InfoQ 作者【伊克罗德信息科技】的原创文章。
原文链接:【http://xie.infoq.cn/article/1ce1296a6f4ded798e189bab2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论