Developers Notes
  • Welcome
  • Developer
    • Java
      • JUnit
        • Parameterized Test
        • Introduction to WireMock
      • Maven
        • Resource Reader and Writer
        • JUnit with Maven
        • Maven Run
        • A Quick Guide to Maven Wrapper
      • Spring
        • Autowired vs Resource
        • Spring OpenFeign 사용시 https 신뢰하는 방법
        • Aspect with Annotation
        • Spring JPA에서 Tibero를 사용하기 위한 설정
        • Spring module dependency
        • Mockito
          • Autowired @Value field in Spring with Mockito
        • SpringBoot Hybernate application.yml
        • ReflectionTestUtils
        • Spring Properties File Outside jar
        • Spring @RequestParam Annotation
        • Properties with Spring and Spring Boot
        • Passing JVM Options from Gradle bootRun
        • Securing Spring Boot API With API Key and Secret
        • Why Is Field Injection Not Recommended?
        • An Overview of Identifiers in Hibernate/JPA
      • Etcs
        • BigDecimal 사용시 주의 사항
        • static factory methods common naming conventions
        • List of Lists into a List (Stream)
        • Return null in stream
        • Logging with Lombok
        • JPA
        • Big-O Java Collections
    • MySQL
      • Active Connections on MySQL
      • MariaDB-Galera
      • FOUND_ROWS
      • MySQL Group Replication Requirements
      • Data Types Explicit Default Handling
    • C/C++
      • Autotool 사용법
      • Intruduction to GNU Autotools
      • mysql
        • C Api Flow
        • MySQL Connector/C++ 8.3 Developer Guide
      • Common vulnerabilities guide for C programmers
      • HTTP in C++
      • JSON in C++
      • How to get memory usage at runtime using C++?
      • How to get time in milliseconds using C++ on Linux?
      • Sleep Functions in C++
      • Calculate Cpu Usage on Linux as Top
    • CryptoGraphy
      • 인증 기관(CA;Certificate Authority) 구성하고 인증서 발급하기
      • KeyTool Import PrivateKey, Certificate
      • Java Keytool 사용법
      • PKCS, Public Key Cryptography Standard
      • CER/DER/CRT/CSR 형식 파일이란?
      • FIPS 140-2
      • SSL 인증서 발급
      • 사용법, tip 정리
      • OpenSSL
        • OpenSSL guide
        • Openssl RSA Private Key Encrypt
      • How to Read PEM File to Get Public and Private Keys
    • PKCS#11 API
      • PKCS#11 API-강좌1
      • PKCS#11 API-강좌2
      • PKCS#11 API-강좌3
      • PKCS#11 API-강좌4
      • PKCS#11 API-강좌5(C 언어로 된 Sample Code)
      • PKCS#11 API-강좌6(EC Key 생성 및 Signing)
    • Warehouse of PKI
    • GoLang
      • go-cshared-examples
      • Fun building shared libraries in Go
      • Golang time
      • Encoding Json
  • OpenSSL
    • OpenSSL Document
      • openssl-req
      • x509v3_config
      • Openssl Example
    • Creating a Self-Signed Certificate With OpenSSL
    • Openssl 3.x Provider
      • Writing OpenSSL Provider Skeleton
    • OpenSSL Certificate Command
  • DevOps
    • Docker
      • Environment Variables for MariaDB or MySQL Docker
      • Container Technology, Docker
      • Docker Trouble Shooting
      • Docker BuildKit
      • How to clear Docker cache and free up space on your system
    • Cloud
      • Serverless Architecture
      • AWS
        • AWS 주요 자습서 Link
        • Diagram-as-code for AWS architecture.
        • AWS Architecture icon
      • Install MariaDB Galera by Helm
      • Jenkinsfile VIM syntax highlighting
      • Cloud Development Kit for Kubernetes
    • VM
      • vagrant를 사용한 vm 설치 방법
    • Etcs
      • Logstash
        • Installing Logstash
        • Configuration Logstash Output
      • Rancher Install
      • Install ELK
      • Simpler Tool for Deploying Rancher
    • Ubuntu
      • Install SFTP Client
  • Etcs
    • Etcs
      • Useful Tools
      • Links
      • Entertainment
Powered by GitBook
On this page
  • Install MariaDB Galera
  • Create Namespace
  • Install Helm Chart
  • Uninstall MariaDB Galera
  • Uninstall Helm Chart
  • Delete Namespace
Edit on GitHub
  1. DevOps
  2. Cloud

Install MariaDB Galera by Helm

Install MariaDB Galera

Create Namespace

$ kubectl create namespace galera

Result

$ kubectl create namespace galera
namespace/galera created

Install Helm Chart

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install dbcluster -n galera --set rootUser.password=Password bitnami/mariadb-galera

Result

$ helm install dbcluster -n galera --set rootUser.password=Password bitnami/mariadb-galera
NAME: dbcluster
LAST DEPLOYED: Mon Feb 20 14:24:35 2023
NAMESPACE: galera
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mariadb-galera
CHART VERSION: 7.4.15
APP VERSION: 10.6.12

** Please be patient while the chart is being deployed **
Tip:

  Watch the deployment status using the command:

    kubectl get sts -w --namespace galera -l app.kubernetes.io/instance=dbcluster

MariaDB can be accessed via port "3306" on the following DNS name from within your cluster:

    dbcluster-mariadb-galera.galera.svc.cluster.local

To obtain the password for the MariaDB admin user run the following command:

    echo "$(kubectl get secret --namespace galera dbcluster-mariadb-galera -o jsonpath="{.data.mariadb-root-password}" | base64 -d)"

To connect to your database run the following command:

    kubectl run dbcluster-mariadb-galera-client --rm --tty -i --restart='Never' --namespace galera --image docker.io/bitnami/mariadb-galera:10.6.12-debian-11-r3 --command \
      -- mysql -h dbcluster-mariadb-galera -P 3306 -uroot -p$(kubectl get secret --namespace galera dbcluster-mariadb-galera -o jsonpath="{.data.mariadb-root-password}" | base64 -d) my_database

To connect to your database from outside the cluster execute the following commands:

    kubectl port-forward --namespace galera svc/dbcluster-mariadb-galera 3306:3306 &
    mysql -h 127.0.0.1 -P 3306 -uroot -p$(kubectl get secret --namespace galera dbcluster-mariadb-galera -o jsonpath="{.data.mariadb-root-password}" | base64 -d) my_database

To upgrade this helm chart:

    helm upgrade --namespace galera dbcluster my-repo/mariadb-galera \
      --set rootUser.password=$(kubectl get secret --namespace galera dbcluster-mariadb-galera -o jsonpath="{.data.mariadb-root-password}" | base64 -d) \
      --set db.name=my_database \
      --set galera.mariabackup.password=$(kubectl get secret --namespace galera dbcluster-mariadb-galera -o jsonpath="{.data.mariadb-galera-mariabackup-password}" | base64 -d)

Uninstall MariaDB Galera

Uninstall Helm Chart

$ kubectl scale sts dbcluster-mariadb-galera -n galera --replicas=0
$ helm delete -n galera dbcluster

Result

$ kubectl scale sts dbcluster-mariadb-galera -n galera --replicas=0
statefulset.apps/dbcluster-mariadb-galera scaled

Result

$ helm delete -n galera dbcluster
release "dbcluster" uninstalled

Delete Namespace

$ kubectl delete namespace galera

Result

$ kubectl delete namespace galera
namespace "galera" deleted

PreviousDiagram-as-code for AWS architecture.NextJenkinsfile VIM syntax highlighting

Last updated 1 year ago

charts/bitnami/mariadb-galera at main · bitnami/chartsGitHub
Logo