helm安装 AWS Load Balancer Controller

embedded/2024/11/13 9:50:30/

1、创建AmazonEKSLoadBalancerControllerRole角色
亚马逊文档
创建文档
2)、使用 eksctl 创建 IAM 角色
a、安装eksctl eksctl安装文档
使用以下命令下载并提取最新版本的 eksctl

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp

将提取的二进制文件移动到 /usr/local/bin

sudo mv /tmp/eksctl /usr/local/bin

使用以下命令测试您的安装是否成功。您必须使用 eksctl 0.34.0 版本或更高版本

[root@ip-172-93-1-174 ~]# eksctl version
0.176.0

b、创建AmazonEKSLoadBalancerControllerRole角色

报错

Error: unable to create iamserviceaccount(s) without IAM OIDC provider enabled

启用 IAM OIDC 提供程序,否则会报以上错
如果2024-05-02 17:13:03 [!] no changes were applied, run again with '--approve' to apply the changes,则加上--approve

[root@ip-172-93-1-174 ~]# eksctl utils associate-iam-oidc-provider --region ap-east-1 --cluster eks-test
2024-05-02 17:13:03 []  (plan) would create IAM Open ID Connect provider for cluster "eks-test" in "ap-east-1"
2024-05-02 17:13:03 [!]  no changes were applied, run again with '--approve' to apply the changes
[root@ip-172-93-1-174 ~]# eksctl utils associate-iam-oidc-provider --region ap-east-1 --cluster eks-test --approve
2024-05-02 17:13:30 []  will create IAM Open ID Connect provider for cluster "eks-test" in "ap-east-1"
2024-05-02 17:13:31 []  created IAM Open ID Connect provider for cluster "eks-test" in "ap-east-1"

创建AmazonEKSLoadBalancerControllerRole角色

根据各自的情况判断是否需要覆盖现有的 --override-existing-serviceaccounts

[root@ip-172-93-1-174 ~]# eksctl create iamserviceaccount \--cluster=eks-test \--namespace=kube-system \--name=aws-load-balancer-controller \--role-name AmazonEKSLoadBalancerControllerRole \--attach-policy-arn=arn:aws:iam::XXXXXXXXX:policy/AWSLoadBalancerControllerIAMPolicy \--approve \--override-existing-serviceaccounts
2024-05-02 17:17:14 []  1 existing iamserviceaccount(s) (kube-system/aws-load-balancer-controller) will be excluded
2024-05-02 17:17:14 []  1 iamserviceaccount (kube-system/aws-load-balancer-controller) was excluded (based on the include/exclude rules)
2024-05-02 17:17:14 [!]  metadata of serviceaccounts that exist in Kubernetes will be updated, as --override-existing-serviceaccounts was set
2024-05-02 17:17:14 []  no tasks

2、安装 AWS Load Balancer Controller
1)添加 eks-charts Helm 图表存储库。AWS 在 GitHub 上维护eks-charts

[root@ip-172-93-1-174 ~]# helm repo add eks https://aws.github.io/eks-charts
"eks" has been added to your repositories

2、更新本地存储库,以确保您拥有最新的图表

[root@ip-172-93-1-174 ~]# helm repo update eks
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "eks" chart repository
Update Complete. ⎈Happy Helming!

3、安装 AWS Load Balancer Controller。

在以下命令中,aws-load-balancer-controller 是您在上一步中创建的 Kubernetes 服务账户。

有关配置 Helm 图表的更多信息,请参阅 GitHub 上的values.yaml

[root@ip-172-93-1-174 ~]# helm delete aws-load-balancer-controller -n kube-system
release "aws-load-balancer-controller" uninstalled
[root@ip-172-93-1-174 ~]# helm install aws-load-balancer-controller eks/aws-load-balancer-controller \-n kube-system \--set clusterName=eks-test \--set serviceAccount.create=false \--set serviceAccount.name=aws-load-balancer-controller
NAME: aws-load-balancer-controller
LAST DEPLOYED: Thu May  2 17:24:15 2024
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
AWS Load Balancer controller installed!

如果要将控制器部署到被限制访问 Amazon EC2 实例元数据服务 (IMDS) 的 Amazon EC2 节点,或者部署到 Fargate 节点,则需要在以下 helm 命令中添加以下标志:

--set region=region-code
--set vpcId=vpc-xxxxxxxx

要查看 Helm 图表和负载均衡器控制器的可用版本,请使用以下命令:

[root@ip-172-93-1-174 ~]# helm search repo eks/aws-load-balancer-controller --versions
NAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       
eks/aws-load-balancer-controller	1.7.2        	v2.7.2     	AWS Load Balancer Controller Helm chart for Kub...
eks/aws-load-balancer-controller	1.7.1        	v2.7.1     	AWS Load Balancer Controller Helm chart for Kub...

注意:

已部署的图表不会自动接收安全更新。当新图表可用时,您需要手动升级到新图表。升级时,在上一个命令中将 install 更改为 upgrade。

helm install 命令会自动安装控制器的自定义资源定义(CRDs)。helm upgrade 命令不会。如果您使用 helm upgrade,,则必须手动安装 CRDs。运行以下命令来安装 CRDs:

wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml 
kubectl apply -f crds.yaml

3、验证控制器是否已安装
1)验证控制器是否已安装

[root@ip-172-93-1-174 ~]# kubectl get deployment -n kube-system aws-load-balancer-controller
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
aws-load-balancer-controller   2/2     2            2           83s

如果使用 Helm 进行部署,则会收到之前的输出结果。如果您使用 Kubernetes 清单进行部署,则只有一个副本。

2)在使用控制器预置AWS资源前,您的集群必须满足特定要求。有关更多信息,请参阅 Amazon EKS 上的应用程序负载均衡和 Amazon EKS 上的网络负载均衡


http://www.ppmy.cn/embedded/31456.html

相关文章

np.concatenate在图像处理中的使用

np.concatenate在图像处理中的使用【单通道转换为多通道】 np.concatenate 是 NumPy 库中的一个函数,用于沿着指定轴将一系列数组连接起来。以下是对 np.concatenate 的使用示例: 单通道转换为3通道(RGB) import numpy as np# …

contentprovider一直报错,发现是android 的manifest中 provider 放在activity后面不行

在Android应用的AndroidManifest.xml文件中,所有的组件(如activity、service、receiver和provider)必须在该文件中按正确的顺序声明。在Android 8.0(API 级别 26)及更高版本中,如果provider组件放置在activ…

如何模拟100个并发用户进行压力测试?

Apache JMeter是一款开源的测试工具,它主要用于对应用程序进行性能测试和压力测试。以下是使用JMeter进行压力测试的详细指南,包括示例步骤和解释。 1. 安装和启动JMeter 首先,你需要从Apache JMeter官网下载并安装JMeter。 2. 创建测试计…

nginx在CentOS系统安装

一:nginx在CentOS系统安装 1.更新系统软件包列表 yum update2.安装EPEL存储库 通过使用EPEL,您可以访问大量的开源软件包,包括Web服务器、数据库、开发工具、版本控制系统、网络安全工具等等。 yum install epel-releas3.安装Nginx yum in…

第Ⅰ章-V package.json文件详解

第Ⅰ章-Ⅰ 了解Vue3 创建一个Vue3项目 第Ⅰ章-Ⅱ Vue3自定义创建项目 项目文件详解 第Ⅰ章-III Vite 创建vue3 项目 第Ⅰ章-IV npm yarn pnpm 包管理器 第Ⅰ章-V package.json文件详解 简洁详解基本字段name 定义项目名称version 定义项目版本号description 对项目的简短描述m…

Python机器学习项目开发实战:在数据分析竞赛平台遴选最佳算法模型

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python机器学习项目开发实战-在数据分析竞赛平台遴选最佳的算法模型-编程案例实例教程.pdf 1、详细阐述 在Python机器学习项目开发实战中,数据分析竞…

恶补《操作系统》4_2——王道学习笔记

4.1_5 文件存储空间管理 1、存储空间的划分与初始化 文件卷(逻辑卷)的概念目录区与文件区 2、几种管理方法 空闲表法:首位置长度,回收时注意修改空闲链表法(空闲盘块链、空闲盘区链)位示图法 成组链接法…

使用Python实现二维码生成工具

二维码的本质是什么? 二维码本质上,就是一段字符串。 我们可以把任意的字符串,制作成一个二维码图片。 生活中使用的二维码,更多的是一个 URL 网址。 需要用到的模块 先看一下Python标准库,貌似没有实现这个功能的…