我有一个运行中的云实例,我在其上安装了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
答案 0 :(得分:1)
问题是因为minkube创建了一个vm或docker容器,因此默认情况下无法从计算机外部访问该群集以解决此问题,请使用不带任何vm的minikube,如下所示:
sudo minikube start --driver=none
确保在部署中一切正常,并且现在可以使用计算机的外部IP地址和服务端口访问群集。
注意:这不是针对生产环境的最佳设置
答案 1 :(得分:0)
使用minikube,您还必须使用minikube公开服务。
示例:
minikube service yourservicename
[1]
您可以使用minikube service list
[1] https://kubernetes.io/docs/tutorials/hello-minikube/#create-a-service