安装的参考资料
charts/bitnami/minio at main · bitnami/charts · GitHub
1 、配置 1
可以正常通过域名访问,但是这种分享的链接是显示 localhost
helm install bitnami-minio \
--set auth.rootUser=minio \
--set auth.rootPassword=****** \
--set persistence.existingClaim=minio \
--set ingress.enabled=true \
--set ingress.hostname=minio.xxxxxx.com \
oci://registry-1.docker.io/bitnamicharts/minio
2 、配置 2
网上查找了要配置 server url ,这种方式登录会提示异常:S3 API Requests must be made to API port.
helm install bitnami-minio \
--set auth.rootUser=minio \
--set auth.rootPassword=****** \
--set persistence.existingClaim=minio \
--set ingress.enabled=true \
--set ingress.hostname=minio.biaoxunkuaiche.com \
--set extraEnvVars[0].name=MINIO_SERVER_URL \
--set extraEnvVars[0].value=http://minio.xxxxxx.com \
--set extraEnvVars[1].name=MINIO_BROWSER_REDIRECT_URL \
--set extraEnvVars[1].value=http://minio.xxxxxx.com \
oci://registry-1.docker.io/bitnamicharts/minio
ingress配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minio
spec:
rules:
- host: minio.biaoxunkuaiche.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: minio
port:
number: 9090
- path: /api
pathType: Prefix
backend:
service:
name: minio
port:
number: 9000
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: default
spec:
type: NodePort
selector:
app: minio
ports:
- name: minio-api
protocol: TCP
port: 9000
targetPort: 9000
- name: minio-console
protocol: TCP
port: 9090
targetPort: 9090
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
containers:
- image: quay.io/minio/minio:RELEASE.2023-05-18T00-05-36Z
name: minio
securityContext:
privileged: true
env:
- name: TZ
value: Asia/Shanghai
- name: MINIO_ROOT_USER
value: minio
- name: MINIO_ROOT_PASSWORD
value: ******
- name: MINIO_SERVER_URL
value: http://minio.******.com
ports:
- containerPort: 9000
protocol: TCP
- containerPort: 9090
protocol: TCP
volumeMounts:
- mountPath: /data
name: minio
command:
- /bin/bash
- -c
args:
- minio server /data --console-address :9090
volumes:
- name: minio
persistentVolumeClaim:
claimName: minio
1
OutOfMemoryError 2023-05-20 01:10:31 +08:00
前两天正好部署了 去拉了下配置给你
services: minio: image: minio/minio:RELEASE.2023-05-04T21-44-30Z.fips ports: - "9000:9000" - "9090:9090" volumes: - "./data:/data" environment: MINIO_ROOT_USER: "root" MINIO_ROOT_PASSWORD: "xxxxxxxxxxxxxxxxxx" MINIO_SERVER_URL: "https://minio.xxxxx.com" MINIO_DOMAIN: "minio.xxxxx.com" command: server /data --console-address ":9090" |
2
OutOfMemoryError 2023-05-20 01:12:35 +08:00
api endpoint 用 9000 的端口,9090 是管理端,我们用 nginx 做 proxy 的
兼容 S3 API 的 minio 的 nginx 反代配置.conf ↓ https://gist.github.com/Zerek-Cheng/8a2f8b0795ea8b19738adf6d36f61134 |
3
Daath 2023-05-20 03:19:18 +08:00
大概看了一下 bitnami/minio 的 helm ,应该设置一下如下配置
* 假设你想暴露的域名访问是: https://minio.xxx.com * API: https://minio.xxx.com/ * console: https://minio.xxx.com/webui/ ```yaml # values extraEnvVars: - MINIO_BROWSER_REDIRECT_URL: "https://minio.xxx.com/webui/" ingress: enabled: true ... path: /webui(/|$)(.*) annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 hostname: minio.xxx.com ``` 然后 helm upgrade 一下应该可以了 |
4
dunhanson OP @Daath @OutOfMemoryError 我试下
|
5
OutOfMemoryError 2023-05-20 13:31:01 +08:00
@Daath 话说为啥 bitnami 那么多镜像,是修改版的吗
|
7
Daath 2023-05-20 14:17:22 +08:00
@OutOfMemoryError #5 个人觉得是他们的 bitnami 根据自己的命名规则这样类似重新设置配置项,方便统一对各种应用服务配置,模板等方面的管理
|
8
Daath 2023-05-20 14:23:25 +08:00
@dunhanson #6 我自己是用官方的 minio/minio ,大概也是类似这么配置就可以了,我用的 minio 版本是 2023-02-10 这样的版本,你可以尝试看下 github 上 minio 的 minio 和 console 项目的 issue ,我遇到类似问题找的关键词应该是 subpath
|
9
Daath 2023-05-20 14:25:49 +08:00
@dunhanson #6 api 的 path 我设置是"/",我只针对 console 的页面做了修改相应的 path 修改成类似"/webui(/|$)(.*)"
|
12
dunhanson OP @Daath 我大概明白了是因为访问 API 接口但是用了 UI 界面的端口的问题,我现在更新 ingress ,最上面有贴出来,现在提示 403 了
|
13
Daath 2023-05-20 16:30:53 +08:00
@dunhanson #12 ingress 你最好改成这样子,因为 minio client 的 alias 配置的 url 也只允许写域名:端口,不支持带 path 形式的
```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minio spec: rules: - host: minio.biaoxunkuaiche.com http: paths: # 这个就是 minio api 的入口 - path: / pathType: Prefix backend: service: name: minio port: number: 9000 # 这里就直接设置成 console 的入口,换成别的名字 /api --> /webui, 或者其他 - path: /webui pathType: Prefix backend: service: name: minio port: number: 9090 ``` |
14
Daath 2023-05-20 16:35:39 +08:00
@dunhanson #12 然后 deployment 里面,少了环境变量下面这个 MINIO_BROWSER_REDIRECT_URL 参数,需要设置你 console 的外部访问地址
|
18
Daath 2023-05-20 16:43:16 +08:00
@dunhanson #17 阿这,ingress 里面其实还有一个问题,可能需要在 ingress 的 annotations 加入这个注释 nginx.ingress.kubernetes.io/rewrite-target 来重写访问到内部 svc 的 url ,就是页面-->svc ,https://minio.xxx.com/webui/xxx --> http://minio:9090/xxx
|
19
Daath 2023-05-20 16:44:06 +08:00
@dunhanson #17 因为我是 helm 部署的,我是有两个 ingress 文件,一个是给 api 用的,一个是给 console 用的。
|
22
Daath 2023-05-20 16:51:25 +08:00
@dunhanson #21 嗯,因为我也遇到过类似的,我用一个域名是可以这么做的,多个域名肯定少了转换 path 事情,就更方便
|
23
ysicing 2023-05-20 17:59:18 +08:00
这是我的 minio 部署的😂, 其实控制台域名可以不要的 helm upgrade -i minio bitnami/minio -f ./minio.yaml
```yaml global: storageClass: tkecfs auth: rootUser:<uuuu> rootPassword: <pppp> defaultBuckets: "cloud" ingress: enabled: true ingressClassName: "nginx" hostname: minio 控制台域名 apiIngress: enabled: true ingressClassName: "nginx" hostname: cos 存储域名 metrics: serviceMonitor: enabled: true ``` |
24
czyt 2023-05-21 00:04:37 +08:00
|