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

K8s on Baremetal: IP Passthrough

I’ve received complaints about inside biz pods, apps didn’t get the right client (instead of public IPv4 IP, they only got in-cluster IPs like 10.233.x.y, or the host IP), so they couldn’t block the over requesting clients by IP. The topology: As the rate limit component works fine under development, that should be due to some reasons that make the app not get correct IPs. Let’s do quick experiments. # svc....

May 21, 2024 · 4 min · 658 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