我是AWS EKS的新手,我想知道如何设置入口并启用TLS(使用免费服务,如lets-encrypt
)。
我已经部署了一个EKS
集群,并且有以下nginx
清单示例。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service-loadbalancer
spec:
type: LoadBalancer. // <------ can't I use a ClusterIp and still have a LB priovisioned?
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
---
#05-ALB-Ingress-Basic.yml
# Annotations Reference: https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-usermgmt-restapp-service
labels:
app: usermgmt-restapp
annotations:
# Ingress Core Settings
kubernetes.io/ingress.class: "alb"
alb.ingress.kubernetes.io/scheme: internet-facing
# Health Check Settings
alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
alb.ingress.kubernetes.io/healthcheck-port: traffic-port
alb.ingress.kubernetes.io/healthcheck-path: /usermgmt/health-status
alb.ingress.kubernetes.io/healthcheck-interval-seconds: '15'
alb.ingress.kubernetes.io/healthcheck-timeout-seconds: '5'
alb.ingress.kubernetes.io/success-codes: '200'
alb.ingress.kubernetes.io/healthy-threshold-count: '2'
alb.ingress.kubernetes.io/unhealthy-threshold-count: '2'
spec:
rules:
- http:
paths:
- path: /*
pathType: Prefix
backend:
service:
name: nginx-service-loadbalancer
port:
number: 80
当它创建LoadBalancer
类型的服务时,它将继续创建classic
负载平衡器。
我的问题是:
1.如何(自动)调配第7层应用程序负载平衡器而不是classic
负载平衡器
1.除了使用LoadBalancer
类型的服务,我是否可以使用ClusterIP
服务并使用我的入口指向它,同时仍然创建一个自动负载均衡器?
谢谢大家!
1条答案
按热度按时间46scxncf1#
1.如何(自动)调配第7层应用程序负载平衡器而不是传统负载平衡器
通过使用入口资源并指定
kubernetes.io/ingress.class: "alb"
。1.除了使用LoadBalancer类型的服务,我是否可以使用ClusterIP服务并使用我的入口指向它,同时仍然创建自动负载均衡器?
是的,当使用
alb
入口资源与注解alb.ingress.kubernetes.io/target-type: ip
时,您可以使用clusterip服务。因此请不要同时创建服务类型负载均衡器和入口资源。