ALB Ingress Controller提供强大的Ingress流量管理功能。本文介绍如何授予自建集群ALB Ingress Controller权限,使得自建集群可以使用ALB Ingress Controller的流量管理功能。
操作流程
步骤一:创建RAM用户
使用阿里云账号登录RAM控制台。
在左侧导航栏,选择身份管理>用户,在右侧页面单击创建用户。
在创建用户页面,输入登录名称,显示名称,选中使用永久AccessKey访问,然后单击确定。
在创建用户页面,复制AccessKey ID和AccessKey Secret。
步骤二:创建权限策略,并授予RAM用户
创建调用ALB Ingress Controller组件的权限策略。
在RAM控制台左侧导航栏,选择权限管理>权限策略,在右侧页面单击创建权限策略。
单击脚本编辑页签,将以下内容复制到代码框,单击确定。
在创建权限策略对话框,输入名称,单击确定。
授予RAM用户调用ALB Ingress Controller组件的权限策略。
在左侧导航栏,选择身份管理>用户。
在用户页面,找到步骤一:创建RAM用户创建的RAM用户,在该RAM用户右侧操作列,单击添加权限。
在新增授权面板,在权限策略区域选择自定义策略,选择已创建的权限策略,其他采用默认配置,单击确认新增授权。
单击关闭。
步骤三:在自建集群配置AccessKey ID与AccessKey Secret
对AccessKey ID与AccessKey Secret进行Base64编码。
在Base64输入AccessKey ID,单击编码,获取AccessKey ID编码后的结果。
输入AccessKey Secret,单击编码,获取AccessKey Secret编码后的结果。
执行以下命令,在自建集群的load-balancer-config ConfigMap输入Base64编码后的AccessKey ID与AccessKey Secret,保存load-balancer-config ConfigMap。
vim <load-balancer-config ConfigMap文件名称>
load-balancer-config ConfigMap代码示例如下:
apiVersion: v1 kind: ConfigMap metadata: name: load-balancer-config namespace: kube-system data: cloud-config.conf: |- { "Global": { "AccessKeyID": "VndV***", # 填写Base64编码后的AccessKey ID。 "AccessKeySecret": "UWU0NnUyTFdhcG***" # 填写Base64编码后的AccessKey Secret。 } }
执行以下命令,部署load-balancer-config ConfigMap。
kubectl apply -f <load-balancer-config ConfigMap文件名称>
重启load-balancer-controller的Pod,使配置生效。
执行以下命令,获取load-balancer-controller的Pod名称。
kubectl get pod -n kube-system|grep load-balancer-controller
执行以下命令,删除load-balancer-controller的Pod。
kubectl delete pod -n kube-system load-balancer-controller-***
预期输出:
pod load-balancer-controller-*** deleted
执行以下命令,查看重建后load-balancer-controller的Pod状态。
kubectl get pod -n kube-system|grep load-balancer-controller
预期输出:
load-balancer-controller-0o9s*** 1/1 Running 0 10s
相关文档
教程:
自建Kubernetes集群使用ALB Ingress最佳实践
源码文档: