醫生給的止咳水也沒什麼用呢,本來想再看一次門診的,可惜不知怎的突然大排長龍,於是改到藥房隨便買了點感冒藥就算了。
聽同事説他今次也看了幾次醫生,所以多看幾次也只會給一樣的藥吧?反正感冒只能靠抵抗力,我只要專心睡個好覺就很了。
可惜會咳,睡不著!太可惡了!
現在好多了,多虧今天和昨天各睡了 4 個小時,咳的頻率也不降了。果然感冒就是得睡啊!
***
最近在研究怎麼架一個私人 S3,現在 S3 差不多已經算是一種 standard 了,很多 library 基本上都有 S3 的 plugin,所以如果隨時都有個 S3 隨身的話各種地方都會很方便。
其實兩年前已經有這個想法了,但那時不是要收費的就是免費但要綁信用卡,免費就是那種吧?在你用上手之後突然就改條款説我不讓你免費了,然後強制你換服務還是交上你的信用卡。
現在這個 blog 的 database backup 用的是 backblaze b2,已經用了兩年了,不用綁信用卡,個人覺得這公司可以信任。現在用免費 plan,但有限額就是了,沒辦法拿來做各種實驗呢。
於是今天又找了找,發現現在架 minio 好像變簡單了。以前好像又要什麼 orchestrator,總之就是一堆想你 subscribe 他們的收費服務啥的,沒看多久就放棄了。
雖然現在的 docs 也好不了多少,不過至少能用 kubectl apply -f 玩玩看了。
$ kubectl get all -n minio
NAME READY STATUS RESTARTS AGE
pod/minio-59c57c5d9d-7d5l4 1/1 Running 0 6h59m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/minio ClusterIP 10.98.6.47 <none> 9000/TCP,9001/TCP 24h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/minio 1/1 1 1 24h
NAME DESIRED CURRENT READY AGE
replicaset.apps/minio-59c57c5d9d 1 1 1 6h59m
replicaset.apps/minio-6bdcf87cd 0 0 0 24h
replicaset.apps/minio-6c66dcbcd 0 0 0 7h22m
這個不錯,只需要一個 Pod 就可以了。
設定可是花了我一整天呢,因為 S3 每個 bucket 都有 domain 跟 region,到底要怎麼弄才對 Google 也幫不上忙,所以我就在這裹寫一點筆記吧。
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: minio-config
namespace: minio
data:
MINIO_DOMAIN: s3.ap-southeast-1.astropenguin.net
MINIO_REGION: ap-southeast-1
這個 MINIO_DOMAIN 跟 MINIO_REGION 的 env vars 是試錯了一輪得出的結論,URL 有一定的格式,我還簽錯了一張 cert 呢。
<bucket-name>.<service>.<region>.<domain>
Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minio-web
namespace: ingress-https
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 8m
spec:
ingressClassName: nginx
tls:
- hosts:
- "*.s3.ap-southeast-1.astropenguin.net"
secretName: any-ap-southeast-1
rules:
- host: "*.s3.ap-southeast-1.astropenguin.net"
http:
paths:
- backend:
service:
name: minio-web
port:
number: 9000
path: /
pathType: Prefix
---
kind: Service
apiVersion: v1
metadata:
name: minio-web
namespace: ingress-https
spec:
type: ExternalName
externalName: minio.minio.svc.cluster.local
我用的是 wildcard cert,所以 ingress 的 resources 我都放到同一個 namespace 下管理了,這樣我就不用每個 namespace 都放一張 tls.secretName了。
其餘的基本上就是 helm install 吧,先將 helm show values bitnami/minio 然後遂個 config 試錯:
global:
storageClass: "local-storage"
auth:
rootUser: root
extraEnvVarsCM: "minio-config"
ingress:
enabled: false
apiIngress:
enabled: false
volumePermissions:
enabled: true
基本上就是預設的 ingress 不要,再加剛才設定的 env vars 就可以了。
⋯⋯
差不多就這樣吧。還在咳,我回去癱床。 斟酌 鵬兄
Fri Sep 22 2023 12:23:37 GMT+0000 (Coordinated Universal Time)
Last modified: Fri Sep 22 2023 12:23:44 GMT+0000 (Coordinated Universal Time)