最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL on k8s 云原生環(huán)境部署

 更新時(shí)間:2022年09月23日 10:49:37   作者:大數(shù)據(jù)老司機(jī)  
這篇文章主要為大家介紹了MySQL on k8s 云原生環(huán)境部署實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、概述

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。這里主要講mysql部署在k8s上,mysql部署在k8s上的優(yōu)勢(shì)主要有以下幾點(diǎn):

  • 資源隔離
  • 動(dòng)態(tài)彈性擴(kuò)縮容
  • 環(huán)境一致性
  • 運(yùn)維方便

官方文檔:docs.oracle.com/en-us/iaas/… MySQL 原理介紹也可以參考我這篇文章:MySQL原理介紹

二、開(kāi)始部署(一主兩從)

1)添加源

helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/mysql
tar -xf mysql-9.3.3.tgz

2)修改配置

  • 修改mysql/values.yaml
...
image:
  registry: myharbor.com
  repository: bigdata/mysql
  tag: 8.0.30-debian-11-r15
...
architecture: replication
...
primary:
  persistence:
    enabled: true
    size: 10Gi
    storageClass: "mysql-local-storage"
    # 目錄需要提前在宿主機(jī)上創(chuàng)建
    local:
    - name: mysql-0
      host: "local-168-182-110"
      path: "/opt/bigdata/servers/mysql/data/data1"
  service:
    type: NodePort
    nodePorts:
      mysql: "30306"
secondary:
  replicaCount: 2
  persistence:
    enabled: true
    size: 10Gi
    storageClass: "mysql-local-storage"
    # 目錄需要提前在宿主機(jī)上創(chuàng)建
    local:
    - name: mysql-1
      host: "local-168-182-111"
      path: "/opt/bigdata/servers/mysql/data/data1"
    - name: mysql-2
      host: "local-168-182-112"
      path: "/opt/bigdata/servers/mysql/data/data1"
  service:
    type: NodePort
    nodePorts:
      mysql: "30307"
...
metrics:
  ## @param metrics.enabled Start a side-car prometheus exporter
  ##
  enabled: true
  image:
    registry: myharbor.com
    repository: bigdata/mysqld-exporter
    tag: 0.14.0-debian-11-r33
  • 添加mysql/templates/pv.yaml
{{- range .Values.primary.persistence.local }}
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: {{ .name }}
  labels:
    name: {{ .name }}
spec:
  storageClassName: {{ $.Values.primary.persistence.storageClass }}
  capacity:
    storage: {{ $.Values.primary.persistence.size }}
  accessModes:
    - ReadWriteOnce
  local:
    path: {{ .path }}
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - {{ .host }}
---
{{- end }}
{{- range .Values.secondary.persistence.local }}
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: {{ .name }}
  labels:
    name: {{ .name }}
spec:
  storageClassName: {{ $.Values.secondary.persistence.storageClass }}
  capacity:
    storage: {{ $.Values.secondary.persistence.size }}
  accessModes:
    - ReadWriteOnce
  local:
    path: {{ .path }}
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - {{ .host }}
---
{{- end }}
  • 添加mysql/templates/storage-class.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: {{ .Values.primary.persistence.storageClass }}
provisioner: kubernetes.io/no-provisioner

3)開(kāi)始安裝

# 創(chuàng)建持久化目錄
mkdir -p /opt/bigdata/servers/mysql/data/data1
# 先準(zhǔn)備好鏡像
docker pull docker.io/bitnami/mysql:8.0.30-debian-11-r15
docker tag docker.io/bitnami/mysql:8.0.30-debian-11-r15 myharbor.com/bigdata/mysql:8.0.30-debian-11-r15
docker push myharbor.com/bigdata/mysql:8.0.30-debian-11-r15
# mysqld-exporter
docker pull docker.io/bitnami/mysqld-exporter:0.14.0-debian-11-r33
docker tag docker.io/bitnami/mysqld-exporter:0.14.0-debian-11-r33 myharbor.com/bigdata/mysqld-exporter:0.14.0-debian-11-r33
docker push myharbor.com/bigdata/mysqld-exporter:0.14.0-debian-11-r33
# 開(kāi)始安裝
helm install mysql ./mysql -n mysql --create-namespace

NOTES

NAME: mysql
LAST DEPLOYED: Mon Sep 19 23:57:18 2022
NAMESPACE: mysql
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.3.3
APP VERSION: 8.0.30
** Please be patient while the chart is being deployed **
Tip:
  Watch the deployment status using the command: kubectl get pods -w --namespace mysql
Services:
  echo Primary: mysql-primary.mysql.svc.cluster.local:3306
  echo Secondary: mysql-secondary.mysql.svc.cluster.local:3306
Execute the following to get the administrator credentials:
  echo Username: root
  MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace mysql mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)
To connect to your database:
  1. Run a pod that you can use as a client:
      kubectl run mysql-client --rm --tty -i --restart='Never' --image  myharbor.com/bigdata/mysql:8.0.30-debian-11-r15 --namespace mysql --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
  2. To connect to primary service (read/write):
      mysql -h mysql-primary.mysql.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
  3. To connect to secondary service (read-only):
      mysql -h mysql-secondary.mysql.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
To access the MySQL Prometheus metrics from outside the cluster execute the following commands:
    kubectl port-forward --namespace mysql svc/mysql-metrics 9104:9104 &
    curl http://127.0.0.1:9104/metrics

查看pod狀態(tài)

kubectl get pods,svc -n mysql -owide

4)測(cè)試驗(yàn)證

【溫馨提示】從庫(kù)(slave)是只讀的。就是簡(jiǎn)單的讀寫(xiě)測(cè)試,還有就是pod掛了,能否正常拉起等等。這個(gè)測(cè)試驗(yàn)證比較簡(jiǎn)單。這里就不一步步的演示了。

5)Prometheus監(jiān)控

Prometheus:

可以通過(guò)命令查看采集數(shù)據(jù)

kubectl get --raw http://10.244.0.74:9104/metrics
kubectl get --raw http://10.244.1.125:9104/metrics
kubectl get --raw http://10.244.2.178:9104/metrics

Grafana 賬號(hào):admin,密碼通過(guò)下面命令獲取

kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

導(dǎo)入grafana模板,集群資源監(jiān)控:7362 官方模塊下載地址:grafana.com/grafana/das…

6)卸載

helm uninstall mysql -n mysql 
kubectl delete pod -n mysql `kubectl get pod -n mysql |awk 'NR>1{print $1}'` --force
kubectl patch ns mysql -p '{"metadata":{"finalizers":null}}'
kubectl delete ns mysql --force

這里只是實(shí)現(xiàn)了mysql 的主從,沒(méi)有實(shí)現(xiàn)高可用,官方目前沒(méi)有出mysql ok k8s高可用的實(shí)現(xiàn)方案,雖然網(wǎng)上也有高可用的實(shí)現(xiàn)方案,但是我們公司沒(méi)真正去落地使用,所以不予評(píng)價(jià)網(wǎng)上的高可用的方案,有興趣的小伙伴可以去試試,其實(shí)mysql在大數(shù)據(jù)領(lǐng)域一般只是作為元數(shù)據(jù)存儲(chǔ),主掛了,影響不是很大。目前也在研究mysql on k8s 的高可用實(shí)現(xiàn)方案,如果后期有mysql on k8s高可用真正落地到生產(chǎn)環(huán)境中使用,到時(shí)候再來(lái)分享一下。

MySQL on k8s 環(huán)境部署就先這里了,更多關(guān)于MySQL k8s 環(huán)境部署的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 查詢數(shù)據(jù)庫(kù)空間(mysql和oracle)

    查詢數(shù)據(jù)庫(kù)空間(mysql和oracle)

    本文通過(guò)代碼示例詳細(xì)介紹了如何查詢MySQL數(shù)據(jù)空間和Oracle數(shù)據(jù)空間,具有一定的參考價(jià)值,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • 基于JPQL實(shí)現(xiàn)純SQL語(yǔ)句方法詳解

    基于JPQL實(shí)現(xiàn)純SQL語(yǔ)句方法詳解

    這篇文章主要介紹了基于JPQL實(shí)現(xiàn)純SQL語(yǔ)句方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MySQL 分區(qū)與分庫(kù)分表策略應(yīng)用小結(jié)

    MySQL 分區(qū)與分庫(kù)分表策略應(yīng)用小結(jié)

    在大數(shù)據(jù)量、復(fù)雜查詢和高并發(fā)的應(yīng)用場(chǎng)景下,單一數(shù)據(jù)庫(kù)往往難以滿足性能和擴(kuò)展性的要求,本文將詳細(xì)介紹這兩種策略的基本概念、實(shí)現(xiàn)方法及優(yōu)缺點(diǎn),并通過(guò)實(shí)際案例展示如何在項(xiàng)目中應(yīng)用它們,感興趣的朋友一起看看吧
    2025-04-04
  • 簡(jiǎn)述Mysql Explain 命令

    簡(jiǎn)述Mysql Explain 命令

    MySQL的EXPLAIN命令用于SQL語(yǔ)句的查詢執(zhí)行計(jì)劃(QEP)。如果你的頁(yè)面返回結(jié)果很慢,你就需要使用explain去分析你的sql是否需要優(yōu)化了.接下來(lái)通過(guò)本文給大家介紹Mysql Explain 命令,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10
  • MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)

    MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)

    一個(gè)項(xiàng)目中如果將所有的數(shù)據(jù)都存放在一張表中是不合理的,比如一個(gè)員工信息,公司只有2個(gè)部門(mén),但是員工有1億人,就意味著員工信息這張表中的部門(mén)字段的值需要重復(fù)存儲(chǔ),極大的浪費(fèi)資源,因此可以定義一個(gè)部門(mén)表和員工信息表進(jìn)行關(guān)聯(lián),而關(guān)聯(lián)的方式就是外鍵。
    2021-06-06
  • MySQL修改密碼的幾種方式

    MySQL修改密碼的幾種方式

    這篇文章主要介紹了MySQL修改密碼的幾種方式,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • MySQL?原理優(yōu)化之Group?By的優(yōu)化技巧

    MySQL?原理優(yōu)化之Group?By的優(yōu)化技巧

    這篇文章主要介紹了MySQL?原理優(yōu)化之Group?By的優(yōu)化技巧,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • mysql中用于數(shù)據(jù)遷移存儲(chǔ)過(guò)程分享

    mysql中用于數(shù)據(jù)遷移存儲(chǔ)過(guò)程分享

    mysql 數(shù)據(jù)遷移用的一個(gè)存儲(chǔ)過(guò)程,需要的朋友可以收藏下。
    2011-05-05
  • mysql delete limit 使用方法詳解

    mysql delete limit 使用方法詳解

    今天研究cms系統(tǒng)的時(shí)候發(fā)現(xiàn),delete 語(yǔ)句后面有個(gè)limit,一直都是select查詢的時(shí)候才使用,不懂為什么要用這個(gè),正好就百度一下為大家分享下delete中使用limit方法與有點(diǎn)
    2014-11-11
  • MySQL查詢性能優(yōu)化索引下推

    MySQL查詢性能優(yōu)化索引下推

    這篇文章主要介紹了MySQL查詢性能優(yōu)化索引下推,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08

最新評(píng)論

务川| 祁阳县| 竹溪县| 巴林左旗| 乌审旗| 梁山县| 门源| 武夷山市| 将乐县| 遵化市| 竹溪县| 广昌县| 长子县| 克山县| 鄂托克旗| 旅游| 京山县| 枣阳市| 衡水市| 锡林郭勒盟| 克东县| 沙雅县| 思南县| 北海市| 来安县| 承德县| 收藏| 祁门县| 焉耆| 沭阳县| 朔州市| 浏阳市| 常山县| 天柱县| 文登市| 绥江县| 汾阳市| 海盐县| 老河口市| 伊宁市| 临沂市|