Я хотел бы сделать две вещи с MicroK8s:
- Маршрутизировать порты хост-машины (Ubuntu 18.04) 80/443 в Microk8s
- Использовать что-то вроде простого входа, определенного в kubernetes.io документы
Моя конечная цель - создать кластер Kubernetes с одним узлом, который находится на хосте Ubuntu, а затем использовать вход для маршрутизации различных доменов в соответствующие им модули внутрисервис.
Я пытался сделать это с Microk8s в течение последних нескольких дней, но не могу обернуть голову вокруг этого.
Лучшее, что я получил на данный момент, это использование MetalLB для создания балансировщика нагрузки.Но для этого потребовалось использовать свободный IP-адрес, доступный в моей локальной сети, а не IP-адрес хост-машины.
Я также включил default-http-backend
и попытался экспортировать и редактироватьэти файлы конфигурации не увенчались успехом.
В качестве примера это будет работать на Minikube
после включения входного добавления. В этом примере показан образ базового сервера Nginx на порте 80 наIP-адрес кластера:
# ingress-service.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
# - host: nginx.ioo
- http:
paths:
- path: /
backend:
serviceName: nginx-cluster-ip-service
servicePort: 80
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
component: nginx
template:
metadata:
labels:
component: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
# nginx-cluster-ip-service
apiVersion: v1
kind: Service
metadata:
name: nginx-cluster-ip-service
spec:
type: ClusterIP
selector:
component: nginx
ports:
- port: 80
targetPort: 80