我已经在 VM(ubuntu 操作系统)中设置了 Minikube,并使用以下 YAML 文件部署了 MinIO:
# Deploys a new Namespace for the MinIO Pod
apiVersion: v1
kind: Namespace
metadata:
name: minio-dev
labels:
name: minio-dev
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: minio-dev
labels:
app: minio
spec:
replicas: 1
template:
metadata:
name: minio
labels:
app: minio
spec:
volumes:
- name: data
emptyDir:
sizeLimit: 500Mi
containers:
- name: minio
image: quay.io/minio/minio:latest
imagePullPolicy: IfNotPresent
env:
- name: MINIO_ACCESS_KEY
value: "minio"
- name: MINIO_SECRET_KEY
value: "minio123"
livenessProbe:
httpGet:
path: /minio/health/live
port: 9000
initialDelaySeconds: 120
periodSeconds: 20
readinessProbe:
httpGet:
path: /minio/health/ready
port: 9000
initialDelaySeconds: 120
periodSeconds: 20
resources:
requests:
memory: "1000Mi"
cpu: "1000m"
limits:
memory: "1500Mi"
cpu: "1500m"
volumeMounts:
- mountPath: /data
name: data
command:
- /bin/bash
- -c
args:
- minio server /data --console-address :9090
restartPolicy: Always
selector:
matchLabels:
app: minio
---
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: minio-dev
spec:
selector:
app: minio
ports:
- port: 9090
name: console
nodePort:30000
- port: 9000
name: s3
type: LoadBalancer
部署后,我使用了
minikube service minio -n minio-dev
命令并获得了以下输出。
命名空间 | 姓名 | 目标端口 | 网址 |
---|---|---|---|
minio-dev | 迷你 | 控制台/9090 s3/9000 | http://192.168.23.2:30000http://192.168.23.2:30415 |
此外,我运行
minikube tunnel
来公开 LoadBalancer 服务。
虽然我可以在虚拟机浏览器中使用 http://192.168.23.2:30000 访问 MinIO,但我在从另一台计算机(虚拟机外部)访问该服务时遇到困难。
我已经检查了防火墙(允许流量到达30000端口)和Minikube隧道状态(没有错误),但我仍然无法连接。https://stackoverflow.com/a/55462765/5886417我通过以下方式更改了yaml文件根据这个答案添加externalIPs(192.168.23.2)。但我认为这没有什么运气。
有人可以建议如何确保从另一台机器正确地从外部访问 MinIO 服务吗?是否有我可能遗漏的网络或防火墙规则的具体注意事项?
预先感谢您的协助!
将 Hackerman 先生的评论发布为答案:
安装 ngrok,然后运行
ngrok http://192.168.23.2:30000
将该端点公开给其他计算机