#asp.net-core #kubernetes #.net-core #amazon-eks
#asp.net-core #kubernetes #.net-ядро #amazon-eks
Вопрос:
Я много пробовал Google и выполнил множество настроек, но все еще не работает.
- У меня есть кластер Kubernetes в Amazon EKS, и я пытаюсь развернуть .NET-контейнер, который, конечно же, является веб-сайтом.
- Создайте классический балансировщик нагрузки, чтобы предоставить его в Интернет.
Что я хочу, так это предоставить доступ к Интернету как HTTP, так и HTTPS — 80, 443
- Я вижу много руководств по решению этой проблемы, указывая как 80, так и 443 на один порт 80 контейнера
- Это означает, что сам контейнер запускается только на порту 80 -> который мне не нужен
Насколько я понимаю, чтобы открыть и запустить приложение в контейнере с 443, я должен установить SSL-сертификат, тогда модуль, который запускает контейнер, каким-то образом должен автоматически доверять сертификату, иначе он не сможет получать запросы от балансировщика нагрузки. Я прав?
apiVersion: apps/v1
kind: Deployment
metadata:
name: dev-demo
spec:
selector:
matchLabels:
app: dev-demo
tier: backend
track: stable
replicas: 1
template:
metadata:
labels:
app: dev-demo
tier: backend
track: stable
spec:
containers:
- name: dev-demo
image: xxxxxxxxxxx
ports:
- containerPort: 80
- containerPort: 443
imagePullPolicy: Always
resources:
requests:
cpu: 500m
memory: 256Mi
limits:
cpu: 1000m
memory: 512Mi
env:
- name: ASPNETCORE_URLS
value: "https://*:443;http://*:80"
- name: ASPNETCORE_HTTPS_PORT
value: "443"
- name: ASPNETCORE_Kestrel__Certificates__Default__Path
value: "xxxxxx.pfx"
- name: ASPNETCORE_Kestrel__Certificates__Default__Password
value: "xxxxxx"
nodeSelector:
kubernetes.io/os: linux
apiVersion: v1
kind: Service
metadata:
name: dev-demo
labels:
run: dev-demo
annotations:
# Note that the backend talks over HTTP.
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
# TODO: Fill in with the ARN of your certificate.
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxxxxxxx
# Only run SSL on the port named "https" below.
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
spec:
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
selector:
app: dev-demo
tier: backend
track: stable
sessionAffinity: None
type: LoadBalancer
Комментарии:
1. Вы нашли какое-либо решение?