ローカル開発環境をminikubeで実行するように切り替えようとしています。すべてのコンテナイメージを作成し、YAMLの設定をすべて実行し、必要なすべてのサービスを実行し、minikube service web --url
から返されたURLを使用してアクセスできます(webはnginxサーバーの前面の名前です) 。しかし、私が理解できなかったことが1つあります。私が取り組んでいるプロジェクトには、バックエンドと通信するスマート外部デバイスが必要です。ローカルLANに接続されたベンチにいくつかのデバイスがありますが、minikube内で実行されているサービスを外部に公開する方法がわかりません。つまり、ラップトップの外部IPを使用してデバイスをサービスに接続できます。これを行う標準的な方法はありますか?
編集:サービスのイングレスを設定しようとしました。これが私のイングレス設定です。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web
spec:
backend:
serviceName: web
servicePort: 80
Webサービスはminikube service web
コマンドでアクセスでき、NodePortタイプとして公開されます。イングレスにアクセスしようとすると、「デフォルトのバックエンド404」だけが表示されます。一方、それが機能したとしても、イングレスはVM内部サブネットでサービスを公開しており、ホストマシンの外部からはアクセスできないため、まだ問題があります。ホストからminikube vmに物事を転送するために何らかのプロキシまたはアクセラレータを実行することを検討し始めていますが、プロキシの永続的なエンドポイントを使用するには、イングレスを実行する必要があります。
複数の方法があります。しかし、私はこの方法で解決策を見つけました。
~ → ???? $ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
ここで、192.168.99.100とnodeportを使用してサービスに接続できます。ノードポート30000のダッシュボードの場合、URLは http://192.168.99.100:30000/ になります
以下のコマンドを使用してサービスポートを取得できます。
~ → ???? $ kubectl get svc --all-namespaces