我想通过alb和CloudFront公开我们的Kubernetes服务。
我们已经创建了分布,并添加了负载平衡器源与X-Custom-Header:cloudfront-header
在负载均衡器中,我们手动创建了一个规则HTTP Header X-Custom-Header is cloudfront-header:转发到kubernetes-service-target-group:1(100%)
上面的解决方案似乎可以通过ALB上的CloudFront公开我们的Kubernetes服务,但我们希望通过engage.yaml文件进行此配置,因为对于任何配置更改,旧的规则都会被删除,这些规则是手动添加的。
cloudfront configurationAWS ALB configuration
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-southeast-1:xxxx:certificate/daxxx-xxx-43c8-ada-cb5c97a1366b
alb.ingress.kubernetes.io/group.name: domain-web
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/ssl-redirect: "443"
alb.ingress.kubernetes.io/target-type: ip
finalizers:
- group.ingress.k8s.aws/domain-web
labels:
app.kubernetes.io/instance: domain-web
app.kubernetes.io/name: domain-web
name: domain-web
spec:
ingressClassName: alb
rules:
- host: market.domain.com
http:
paths:
- backend:
service:
name: marketing
port:
number: 3000
pathType: ImplementationSpecific
tls:
- hosts:
- market.domain.com
字符串
1条答案
按热度按时间mv1qrgav1#
使用以下配置创建CloudFront分发版:
配置指向您的AWS ALB的
Origin
:Origin domain
设置为您的ELB (AWS ALB)
DNSx1c 0d1x的数据
设置指向
Origin
的Default(*)
行为:ELB (AWS ALB)
的Origin
Origin
中只接受HTTPS
的
设置-配置域和证书:
market.domain.com
个)market.domain.com
或*.domain.com
的证书注意:如果您还没有在
Route 53
中定义子域域,这是可以接受的,但是在我们执行Route 53
步骤之前,在此处定义子域域将有助于您完成此步骤。您可以随时返回并编辑Settings
以添加域。的
为您的子域添加
Route 53
记录Route 53
和Hosted zones
Create record
Record name
上的子域(例如market
)的数据。Alias
切换Route traffic to
中选择Alias to CloudFront distribution
Choose distribution
中,选择为market.domain.com
创建的分发的
确认
设置完成后,您应该能够通过
market.domain.com
向Kubernetes集群中的Service
发出请求。假设您有一条
/healthcheck
路由:范例:
字符串
这是可行的,因为请求将来自
market.domain.com
,它将具有以下Header
:Host: market.domain.com
个说明:
AWS ALB
将您的请求路由到Ingress
对象(在本例中为domain-web
),该对象使用Host
标头来解析它必须将该请求传送到群集中的哪个Service
。型