咳死了
今年的感冒好厲害,雖然沒有什麼特別的徵狀,但會不停地咳,而且是全天 24 小時不讓人睡。通常的感冒只要睡個兩三天就好了,但今次這個還滿惡劣的,不睡的話就沒辦法全力抵抗了。托這個的福我病了一整個禮拜,晚上只能不停地咳有夠痛苦。

醫生給的止咳水也沒什麼用呢,本來想再看一次門診的,可惜不知怎的突然大排長龍,於是改到藥房隨便買了點感冒藥就算了。

聽同事説他今次也看了幾次醫生,所以多看幾次也只會給一樣的藥吧?反正感冒只能靠抵抗力,我只要專心睡個好覺就很了。

可惜會咳,睡不著!太可惡了!

現在好多了,多虧今天和昨天各睡了 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 就可以了。

⋯⋯

差不多就這樣吧。還在咳,我回去癱床。
Profile picture
斟酌 鵬兄
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)
Comments
No comments here.
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了