Skip to content
Go back

通过为aws-eks托管的k8s中的service启用nlb以实现对外暴露服务

Edit page

通过为aws-eks托管的k8s中的service启用nlb以实现对外暴露服务

默认情况下k8s中的ServiceClusterIP类型, 即只能在集群内部访问, 无法通过外部访问(这里的外部指的是k8s集群外部, 即k8s集群所在的VPC外部).
NodeProt也存在同样的问题, 无法通过外部访问.
为了能够通过外部访问k8s中的service, 需要启用nlb以实现为aws-eks托管的k8s中的service启用外部访问能力.

解决方案

前提

kubernetes上存在aws-load-balancer-controller, 否则该功能无法使用

更新Service, 追加annotations以及修改typeLoadBalancer

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-type: external
spec:
  type: LoadBalancer

稍等片刻后通过kubectl get svc查看servicestatus信息, 可以看到status中的loadBalancer信息中包含了hostname信息. 通过hostname即可访问service.

参考


Edit page
Share this post on:

Previous Post
清理旧版本的snap应用以释放空间
Next Post
使用aliyundrive-webdav和rclone实现阿里云盘文件挂载到本地