Skip to content

Commit 6474420

Browse files
authored
Update minio.md add s3 endpoint ingress
1 parent 5575ae3 commit 6474420

File tree

1 file changed

+37
-8
lines changed

1 file changed

+37
-8
lines changed

docs/operators/minio.md

+37-8
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,9 @@ stringData:
8888
8989
Run `kubectl create -n [namespace] -f example-tenant-secret.yaml -f example-tenant.yaml`, you should see pod named `myminio-pool-0-0` (possibly similar pods depending on the configuration) running in the specified namespace.
9090

91-
## Minio Console Access
92-
To access the Minio console from the internet you need to configure the ingress rule. There you can define a custom hostname. Below, you can find the ingress rule example. Adding this ingress will generate the appropriate secret (certificate) for your hostname and bind to minio service within Kubernetes. There You must change `host` property in `rules` section to your own and consequently also the properties in `tls` section. For `secretName` use the hostname where you replace dots with dashes and append `-tls`, i.e. *myminio-console-dyn-cloud-e-infra-cz-tls*. This secret will be generated automatically DO NOT generate it in advance or DO NOT use any existing. You can fully rely on Let's Encrypt service to obtain the correct secret (certificate). You can check the port number of `myminio-console` by running the command `kubectl -n <your-namespace> get svc`, default console port is 9443.
91+
## Minio Console Access (Tenant Administration)
92+
You can access `myminio-console` service that is automatically created from other Pods in the Kubernetes cluster. That service works like a DNS name so you can use it as an endpoint for another applications within the Kubernetes cluster. If exposure to another namespace is required, use the full name - e.g. `myminio-console.[namespace].svc.cluster.local`.
93+
To access the Minio console from the internet you need to configure the ingress rule. There you can define a custom hostname. You can download the [ingress example](minio-minimal-console-ingress.yaml). Adding this ingress rule will generate the appropriate secret (certificate) for your hostname and bind to `myminio-console` service within Kubernetes. There You must change `host` property in `rules` section to your own and consequently also the properties in `tls` section. For `secretName` use the hostname where you replace dots with dashes and append `-tls`, i.e. *myminio-console-dyn-cloud-e-infra-cz-tls*. This secret will be generated automatically **DO NOT** generate it in advance or **DO NOT** use any existing. You can fully rely on Let's Encrypt service to obtain the correct secret (certificate). You can check the port number of `myminio-console` service by running the command `kubectl -n [namespace] get svc`, default `myminio-console` service port is 9443.
9394

9495
```yaml
9596
apiVersion: networking.k8s.io/v1
@@ -121,12 +122,40 @@ status:
121122
ingress:
122123
- hostname: kuba-pub.cerit-sc.cz
123124
```
124-
## S3 Storage Access
125-
126-
To access the storage from other Pods, you can use `myminio-console` and `myminio-hl` services that are automatically created. These services work like DNS names, so you can use them as endpoints for another applications within the Kubernetes cluster. If exposure to another namespace is required, use the full name - e.g. `myminio-hl.[namespace].svc.cluster.local`.
127-
128-
- `myminio-console:9443` provides a HTTP web-based console for managing the MinIO
129-
- `myminio-hl:9000` provides the S3 server connection
125+
## S3 Storage Access (S3 Storage Endpoint for uploading and downloading data)
126+
To access the S3 storage from other Pods in Kubernetes cluster you can use `myminio-hl` service that is automatically created. That service works like DNS names so you can use it as endpoint for another application within the Kubernetes cluster. If exposure to another namespace is required, use the full name - e.g. `myminio-hl.[namespace].svc.cluster.local`.
127+
To access the Minio S3 storage from the internet you need to configure the ingress rule. There you can define a custom S3 endpoint hostname. You can download the [ingress example](minio-minimal-s3endpoint-ingress.yaml). Adding this ingress rule will generate the appropriate secret (certificate) for your hostname and bind to `myminio-hl` service within Kubernetes. There You must change `host` property in `rules` section to your own and consequently also the properties in `tls` section. For `secretName` use the hostname where you replace dots with dashes and append `-tls`, i.e. *myminio-s3.dyn.cloud.e-infra.cz-tls*. This secret will be generated automatically **DO NOT** generate it in advance or **DO NOT** use any existing. You can fully rely on Let's Encrypt service to obtain the correct secret (certificate). You can check the port number of `myminio-hl` service by running the command `kubectl -n [namespace] get svc`, default `myminio-hl` service port is 9000.
128+
```yaml
129+
apiVersion: networking.k8s.io/v1
130+
kind: Ingress
131+
metadata:
132+
annotations:
133+
cert-manager.io/cluster-issuer: letsencrypt-prod
134+
kubernetes.io/tls-acme: "true"
135+
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
136+
generation: 2
137+
name: minio-ingress-s3
138+
spec:
139+
ingressClassName: nginx
140+
rules:
141+
- host: myminio-s3.dyn.cloud.e-infra.cz
142+
http:
143+
paths:
144+
- backend:
145+
service:
146+
name: myminio-hl
147+
port:
148+
number: 9000
149+
pathType: ImplementationSpecific
150+
tls:
151+
- hosts:
152+
- myminio-s3.dyn.cloud.e-infra.cz
153+
secretName: myminio-s3-dyn-cloud-e-infra-cz-tls
154+
status:
155+
loadBalancer:
156+
ingress:
157+
- hostname: kuba-pub.cerit-sc.cz
158+
```
130159

131160
## Network Policy
132161

0 commit comments

Comments
 (0)