Helm Install MySQL Cluster

Comparison I have to disclaim that due to my limitation of knowledge, the following is just my personal opinion(according to my experience). So there may be some errors or omissions. If you have any suggestions, please let me know. Feature MySQL Operator Bitnami MySQL Percona XtraDB Cluster High Availability Yes Yes Yes Automatic Failover Yes No Yes Backup/Restore Yes No Yes Scaling Yes Limited Yes Custom Configurations Yes Limited Yes Multi-Master Replication Yes No Yes Ease of Setup Moderate Simple Moderate Community Support Weak Strong Strong Cloud Native Yes No Yes Installation Bitnami MySQL As to my concern, the bitnami one does not have a failover solution, so if the mater is down, it will be down for sure....

November 29, 2024 · 4 min · 839 words · Me

Ghost Migration

Migration from Ghost(Docker) to Ghost(K8s) Recently I am prepparing for migrating my blog from Ghost(Docker on Baremetal) to Ghost(on K8s). Changes Previous Previous Now Host Docker K8s Database Mariadb Mysql S3 Cloudflare R2 Cloudflare R2 Route Caddy Ingress Steps Boot up the new Ghost I am using the official docker image1 to boot up the new Ghost. I am quite sure the official image is the most suitable one for me to run instead of bitnami one(it has way too many self defined logic processes in it)....

November 27, 2024 · 3 min · 576 words · Me

K8s on Bare metal: Teleport by helm

Helm Charts here, I use terraform + helm provider to install teleport charts. We have to start from here: https://goteleport.com/docs/reference/helm-reference/ For a K8s cluster, we need at least install no less than two components: teleport-cluster teleport-operator is included teleport-kube-agent A few steps further: setup Github Login setup applications Also, we need cert-manager to issue certificates. As we need DNS solver, this means we need to create a TXT record of that domain every time when we issue a wildcard domain to get verified by ACME, which means we need to configure according to different DNS providers....

May 20, 2024 · 4 min · 816 words · Me

K8s Trivial Questions

Here are some examples or illustrations that I use quite a lot in my work routine. How to reuse env parameter in another one(e.g. assemble many into one) That’s quite useful for database DSN configuration like work cases. apiVersion: v1 kind: Pod metadata: name: mysql-app spec: containers: - name: mysql-container image: mysql:5.7 env: - name: mysql_host value: "mysql.default.svc.cluster.local" - name: mysql_db value: "myapp" - name: mysql_port value: "3306" - name: PROTOCOL value: "mysql" - name: mysql_dsn value: "$(PROTOCOL)://$(mysql_host):$(mysql_port)/$(mysql_db)" Why my kustomization replaced my base envFrom?...

April 30, 2024 · 1 min · 135 words · Me