MicroK8s で 2 つのことをしたいと思います。
- ホスト マシン (Ubuntu 18.04) のポート 80/443 を Microk8s にルーティングします。
- kubernetes.ioドキュメントで定義されている単純なイングレスのようなものを使用します
私の最終的な目標は、Ubuntu ホスト上にある単一ノードの Kubernetes クラスターを作成し、イングレスを使用してサービス内のそれぞれのポッドにさまざまなドメインをルーティングすることです。
過去数日間、Microk8 でこれを実行しようとしてきましたが、頭を包むことができません。
これまでに得た最良の方法は、MetalLBを使用してロード バランサーを作成することです。しかし、これには、ホスト マシンの IP アドレスではなく、ローカル ネットワークで利用可能な無料の IP アドレスを使用する必要がありました。
も有効にして
default-http-backend
、これらの構成ファイルをエクスポートおよび編集しようとしましたが、成功しませんでした。
例としてMinikube
、イングレス アドオンが有効になるとこれが機能します。この例では、クラスター IP のポート 80 にあるベース Nginx サーバー イメージを示します。
# 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