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是的,我添加了规则,我确信这不是问题所在