Будучи новичком в Kubernetes, я пытаюсь сделать простое. NET Core 3 MVC приложение, работающее на Kubernetes и отвечающее на порт 443, а также на порт 80. У меня есть рабочая Docker -Compose настройка, которая Я пытаюсь портировать на Kubernetes.
Работает Docker Desktop CE с nginx -адресом на Win 10 Pro.
Пока он работает на порту 80. ( http://mymvc.local на хосте Win 10 - файл hosts перенаправляет мое mvc .local на 127.0.0.1)
Мое MVC приложение работает за службой mvc на порту 5000.
Я создал самозаверяющий сертификат для домена 'my mvc .local', который работает в настройке Docker -Compose.
Это мой входной файл
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: mvc-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- mymvc.local
secretName: mvcsecret-tls
rules:
- host: mymvc.local
http:
paths:
- path: /
backend:
serviceName: mvc
servicePort: 5000
Это мой файл секретов (ключи сокращены):
apiVersion: v1
kind: Secret
metadata:
name: mvcsecret-tls
data:
tls.crt: MIIDdzCCAl+gAwIBAgIUIok60uPHId5kve+/bZAw/ZGftIcwDQYJKoZIhvcNAQELBQAwKTELMAkGBxGjAYBgN...
tls.key: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDPGN6yq9yzxvDL8fEUJChqlnaTQW6bQX+H0...
type: kubernetes.io/tls
kubectl описывает вход следующим образом:
Name: mvc-ingress
Namespace: default
Address: localhost
Default backend: default-http-backend:80 (<none>)
TLS:
mvcsecret-tls terminates mymvc.local
Rules:
Host Path Backends
---- ---- --------
mymvc.local
/ mvc:5000 (10.1.0.27:5000)
Annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-passthrough: true
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 11m nginx-ingress-controller Ingress default/mvc-ingress
Normal UPDATE 11m nginx-ingress-controller Ingress default/mvc-ingress
В моей Docker -Compose setup, У меня есть Nginx обратный прокси-сервер, перенаправляющий 80 и 443 на мой сервис MVC, но я решил, что это роль входа на Kubernetes?
Мой сервис YAML: * 1 025 *
apiVersion: v1
kind: Service
metadata:
name: mvc
labels:
app: mymvc
spec:
ports:
- name: "mvc"
port: 5000
targetPort: 5000
selector:
app: mymvc
type: ClusterIP
РЕДАКТИРОВАТЬ: Добавление 'nginx .ingress.kubernetes.io / rewrite-target: /' для ввода аннотаций сопряжено с работой пересылки https, но представленный сертификат является Фальшивый сертификат контроллера входа в Kubernetes - не мой самоподписанный.