Я работаю над приложением Kubernetes, в котором у нас работает сервер nginx. Есть 2 проблемы, с которыми мы сталкиваемся в настоящее время,
, одна связана с проверками здоровья. Я хотел бы добавить проверки работоспособности, которые проверяют контейнер на порту-443, но с TCP Kubernetes каким-то образом делает это на SSL , в результате чего контейнеры перестают работать AWS.
Во-вторых, SSL Traffi c прерывается на ELB, все еще общаясь с контейнером на порту-443. Я уже добавил самозаверяющий сертификат в контейнер внутри nginx. Мы перенаправляем с http на https внутренне, поэтому все, что находится на порте 80, для нас бесполезно. Что я делаю не так?
service.yaml:
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: service-name
app.kubernetes.io/instance: service-name-instance
app.kubernetes.io/version: "1.0.0"
app.kubernetes.io/component: backend
app.kubernetes.io/managed-by: kubectl
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: OUR ARN
# Only run SSL on the port named "https" below.
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "TCP"
service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
name: service-name
spec:
selector:
app: service-name
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443