简介:
默认情况下k8s中部署程序以后是需要让外面的人使用的,所以需要把服务暴露出来。暴露的方式一般是ingress和nodeport,而这两个东西又必须要依赖负载均衡器。亚马逊和阿里云上可以直接用,只需要安装load-balancer-controller即可。这章主要是讲如何正确的安装这个aws-load-balancer-controller。如果是自建的k8s集群推荐一个负载均衡器metallb,只要配置上内网地址然后在路由器上做nat映射就能直接暴露出公网。但是一般自建都是接waf以后再暴露公网。具体安全相关的内容可以自行查阅其它文件,这里没有推荐自己搜索。
创建负载均衡:
创建 IAM 策略:
执行命令
curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.2.0/docs/install/iam_policy.json
aws iam create-policy --policy-name AWSLoadBalancerControllerIAMPolicy --policy-document file://iam_policy.json
v2_2_0_full.yaml下载完以后一定要删除546-553行,大概是这个内容。
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/name: aws-load-balancer-controller
name: aws-load-balancer-controller
namespace: kube-system
替换your-cluster-name
为你的集群名称:
- --cluster-name=your-cluster-name
- --ingress-class=alb
image: amazon/aws-alb-ingress-controller:v2.2.0
可以直接搜索your-cluster-name,然后替换成你的集群名称,比如我的是test-cluster
然后执行命令查看是否安装成功。如果有问题可以使用kubectl logs,kubectl describe等命令查看错误日志。
kubectl get deployment -n kube-system aws-load-balancer-controller
亚马逊参考链接https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/aws-load-balancer-controller.html
下一章讲如何添加rancher控制台