从主机外部访问Minkube集群

时间:2020-08-27 16:46:25

标签: networking kubernetes minikube

我有一个运行中的云实例,我在其上安装了minikube,并创建了一个群集,该群集具有Pod服务,单个NodePort

我知道这不是设置kubernetes集群时的最佳做法

问题是: 如果从主机(云实例)内部进行了测试,一切都可以正常工作,但是我正尝试使用其external-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

2 个答案:

答案 0 :(得分:1)

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

sudo minikube start --driver=none

确保在部署中一切正常,并且现在可以使用计算机的外部IP地址和服务端口访问群集。


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

答案 1 :(得分:0)

使用minikube,您还必须使用minikube公开服务。

示例: minikube service yourservicename [1]

您可以使用minikube service list

列出您的所有minikube服务。

[1] https://kubernetes.io/docs/tutorials/hello-minikube/#create-a-service