AWS Load Balancer控制器创建了一个公共面向的负载均衡器,并将其绑定到私有子网。这可以使用以下Kubernetes YAML文件来实现:
apiVersion: elbv2.k8s.aws/v1beta1
kind: LoadBalancer
metadata:
name: my-public-lb
annotations:
# Replace with the desired HTTP/HTTPS listener
# ALB ingress controller will create this listener for you
ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]'
# Replace with your VPC ID
# ALB will serve traffic only on private subnets
service.beta.kubernetes.io/aws-load-balancer-unschedule-timeout: '10'
service.beta.kubernetes.io/aws-load-balancer-vpc-id: 'vpc-xxxxxxxxxxxxxxxxx'
spec:
# Replace with your internal service
# Make sure to use a service of type "ClusterIP"
type: LoadBalancer
externalTrafficPolicy: Cluster
selector:
app: my-app
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
# Replace with your subnet IDs
# You can specify multiple subnets separated by a comma
subnetMappings:
- subnetID: subnet-xxxxxxxxxxxxxxxxx
- subnetID: subnet-xxxxxxxxxxxxxxxxx
这个YAML文件定义一个公共面向的负载均衡器,它使用两个端口,80和443,并将流量限制为私有子网。它还需要一些注释来帮助您替换必要的信息。