Networking 从主机外部访问minkube群集

Networking 从主机外部访问minkube群集,networking,kubernetes,minikube,Networking,Kubernetes,Minikube,我已经启动并运行了一个云实例,我在其上安装了minikube,并使用NodePort服务创建了一个集群、单个Pod 我知道这不是安装kubernetescluster时的最佳做法 问题是: 如果从主机(云实例)内部进行测试,一切都正常,但我正在尝试使用其外部ip地址从主机外部访问集群,如何做到这一点 部署:如果要测试,则映像是公共的 apiVersion: apps/v1 kind: Deployment metadata: name: python-app-deployment spec:

我已经启动并运行了一个云实例,我在其上安装了
minikube
,并使用
NodePort
服务创建了一个集群、单个
Pod

我知道这不是安装
kubernetes
cluster时的最佳做法

问题是: 如果从主机(云实例)内部进行测试,一切都正常,但我正在尝试使用其
外部ip
地址从主机外部访问集群,如何做到这一点

部署:如果要测试,则映像是公共的

apiVersion: apps/v1
kind: Deployment
metadata:
  name: python-app-deployment
spec:
  template:
    metadata:
      labels:
        tag: pythonapp
    spec:
      containers:
        - name: pythonapp
          image: atefhares/mypythonapp:latest
          ports:
            - containerPort: 8000
          env:
            - name: ENVIRONMENT
              value: DEV
            - name: HOST
              value: "localhost"
            - name: PORT
              value: "8000"
            - name: REDIS_HOST
              value: "redis-service"
            - name: REDIS_PORT
              value: "6379"
            - name: REDIS_DB
              value: "0"
  replicas: 1
  selector:
    matchLabels:
      tag: pythonapp
服务:

apiVersion: v1
kind: Service
metadata:
  name: python-app-service
spec:
  type: NodePort
  ports:
    - nodePort: 30001
      port: 8000
  selector:
    tag: pythonapp
数据库部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
spec:
  template:
    metadata:
      labels:
        name: redis
    spec:
      containers:
        - name: redis
          image: redis:latest
          ports:
            - containerPort: 6379
  selector:
      matchLabels:
        name: redis
数据库服务:

apiVersion: v1
kind: Service
metadata:
  name: redis-service
spec:
  ports:
  - port: 6379
    protocol: TCP
  selector:
    name: redis

使用minikube时,还必须使用minikube公开服务

例如:
minikube服务yourservicename
[1]

您可以使用
minikube服务列表


[1]

问题是因为minkube创建了一个vm或docker容器,因此默认情况下无法从机器外部访问群集来解决此问题。请按如下方式使用不带任何vm的minikube:

sudo minikube start --driver=none
确保在部署中一切正常,现在可以使用计算机的外部ip地址和服务端口访问集群



注意:这不是生产环境的最佳设置

我已经尝试使用
LoadBalancer
服务,但它被困在
挂起
,我不知道如何将其连接到云
LB
您是否运行了minikube服务yourservicename?您是否创建了防火墙规则来访问节点端口外部?请发布您的服务规范。@KoopaKiller是的,我添加了规则,我确信这不是问题所在