国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用k8s部署Mysql實例~hostpath,nfs服務器,PV和PVC持久化

這篇具有很好參考價值的文章主要介紹了使用k8s部署Mysql實例~hostpath,nfs服務器,PV和PVC持久化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.k8s數據存儲的分類:

1.基礎存儲的分類:

分類 說明
EmptyDir EmptyDir是在Pod被分配到Node時創(chuàng)建的,無須手動指定,當Pod銷毀時, EmptyDir中的數據也會被永久刪除
HostPath HostPath就是將Node主機中一個實際目錄掛載到Pod中,保證Pod銷毀了,但是數據依舊可以存在于Node主機上
NFS NFS是一個網絡文件存儲系統(tǒng),解決了節(jié)點故障數據異常的問題

2.高級存儲:

分類 說明
PV(Persistent Volume) 持久化卷的意思,是對底層的共享存儲的一種抽象,PV相似于卷組(存儲池)
PVC(Persistent Volume Claim) 持久卷聲明的意思,用戶對于存儲需求的一種聲明,PVC如同在卷組中劃分出的邏輯卷

3.高級存儲的分類:

分類 說明
ConfigMap ConfigMap是一種比較特殊的存儲卷,它的主要作用是用來存儲配置信息的,明文保存
Secret 它主要用于存儲敏感信息,例如密碼、秘鑰、證書等等,可加密保存

2.基礎存儲-hostpath

1.創(chuàng)建mysql的yaml文件

cat << eof > mysql.yaml
apiVersion: apps/v1                          # 通過kubectl explain deployment命令查看版本
kind: Deployment                             # 資源類型
metadata:
  name: mysql-deployment                     # 資源名稱
  namespace: mysql                           # 指定命名空間
spec:
  replicas: 1                                # 控制器下的pod數
  selector:
    matchLabels:
      app: mysql                             # 這是控制器用來控制pod的標簽
  template:
    metadata:
      labels:
        app: mysql                           # pod的標簽
    spec:
      containers:
        - name: mysql                        # 容器名
          image: mysql:8.0.20                # 容器鏡像
          env:                               # mysql環(huán)境參數
          - name: MYSQL_ROOT_PASSWORD        # 指定ROOT用戶密碼
            value: "你的密碼"
          ports:                             # 容器暴露的端口
          - name: mysql
            containerPort: 3306
          volumeMounts:                      # 容器內的被掛載目錄
          - name: mysql-data
            mountPath: /var/lib/mysql
          - name: mysql-config
            mountPath: /etc/mysql/conf.d
      volumes:                               # 聲明volume(宿主機目錄), name為logs-volume
      - name: mysql-data
        hostPath:
          path: /root/mysql/data
          type: DirectoryOrCreate            # 目錄存在就使用,不存在就先創(chuàng)建后使用
      - name: mysql-config
        hostPath:
          path: /root/mysql/conf
          type: DirectoryOrCreate            # 目錄存在就使用,不存在就先創(chuàng)建后使用
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-nodeport
  namespace: mysql
spec:
  selector:
    app: mysql                               # 服務通過此標簽連接deployment資源來暴露端口
  type: NodePort                             # 服務類型:NodePort
  ports:                                     # 不指定NodePort端口就會自動分配,(默認的取值范圍是:30000-32767)
  - protocol: TCP
    port: 3306
    targetPort: 3306
eof

2.創(chuàng)建mysq應用:

kubectl apply -f mysql.yaml

3.查看pod:

[root@master mysql]# kubectl get deployment,pod,svc -n mysql -o wide
NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mysql-deployment   1/1     1            1           7m57s
deployment.apps/nginx              1/1     1            1           15d

NAME                                   READY   STATUS    RESTARTS   AGE
pod/mysql-deployment-b68b5b8bc-jps5c   1/1     Running   0          7m57s
pod/nginx-6867cdf567-phn5l             1/1     Running   1          148m

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP          15d
service/mysql-nodeport   NodePort    10.98.118.107    <none>        3306:30160/TCP   7m57s
service/nginx            NodePort    10.103.194.224   <none>        80:30105/TCP     15d

4.遠程連接:

[root@localhost ~]# mysql -h192.168.174.30 -P30160 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

3.基礎存儲-nfs服務器

1.安裝nfs服務器:

  • master節(jié)點上:
    • 使配置生效

      exportfs -r
    • 將共享目錄以讀寫權限暴露給192.168.174.0/24網段中的所有主機

      cat << eof >> /etc/exports
      /root/nfs/mysql 192.168.174.0/24(rw,no_root_squash)
      eof
    • 啟動nfs服務

      systemctl enable nfs-server;systemctl restart nfs-server
    • 準備一個共享目錄

      mkdir -p /root/nfs/mysql -pv;chmod o=rwx /root/nfs/mysql
    • 在master上安裝nfs服務:

      yum install nfs-utils -y
  • node節(jié)點:

    • 接下來,要在的每個node節(jié)點上都安裝下nfs,這樣的目的是為了node節(jié)點可以驅動nfs設備文章來源地址http://www.zghlxwxcb.cn/news/detail-830030.html

      yum install nfs-utils -y
      systemctl enable nfs-server;systemctl restart nfs-server

2.創(chuàng)建mysql的yaml文件:

cat << eof > mysql.yaml
apiVersion: apps/v1                          # 通過kubectl explain deployment命令查看版本
kind: Deployment                             # 資源類型
metadata:
  name: mysql-deployment                     # 資源名稱
  namespace: mysql                           # 指定命名空間
spec:
  replicas: 1                                # 控制器下的pod數
  selector:
    matchLabels:
      app: mysql                             # 這是控制器用來控制pod的標簽
  template:
    metadata:
      labels:
        app: mysql                           # pod的標簽
    spec:
      containers:
        - name: mysql                        # 容器名
          image: mysql:8.0.20                # 容器鏡像
          env:                               # mysql環(huán)境參數
          - name: MYSQL_ROOT_PASSWORD        # 指定ROOT用戶密碼
            value: "你的密碼"
          ports:                             # 容器暴露的端口
          - name: mysql
            containerPort: 3306
          volumeMounts:                      # 容器內的被掛載目錄
          - name: mysql-data
            mountPath: /var/lib/mysql
      volumes:                               # 聲明volume(宿主機目錄), name為logs-volume
      - name: mysql-data
        nfs:
          server: 192.168.174.30             # nfs服務器地址
          # /root/nfs/mysql是共享目錄,data是創(chuàng)建的一個目錄用來存儲mysql數據        
          path: /root/nfs/mysql/data         # 共享文件路徑(服務器地址)
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-nodeport
  namespace: mysql
spec:
  selector:
    app: mysql                               # 服務通過此標簽連接deployment資源來暴露端口
  type: NodePort                             # 服務類型:NodePort
  ports:                                     # 不指定NodePort端口就會自動分配,(默認的取值范圍是:30000-32767)
  - protocol: TCP
    port: 3306
    targetPort: 3306
eof

3.創(chuàng)建mysq應用:

kubectl apply -f mysql.yaml

4.查看pod:

[root@master ~]# kubectl get deployment,pod,svc -n mysql -o wide
NAME                               READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES         SELECTOR
deployment.apps/mysql-deployment   1/1     1            1           3m17s   mysql        mysql:8.0.20   app=mysql

NAME                                    READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
pod/mysql-deployment-5fb47b585b-k7bdm   1/1     Running   0          3m17s   10.244.2.9   node2   <none>           <none>

NAME                     TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE     SELECTOR
service/mysql-nodeport   NodePort   10.99.39.122   <none>        3306:31819/TCP   3m17s   app=mysql

5.查看master節(jié)點上的目錄:

pod所在node節(jié)點是沒有目錄的,直接使用nfs服務器的目錄

[root@master ~]# ll nfs/mysql/data/
total 181696
-rw-r----- 1 polkitd input       56 Nov 29 05:20 auto.cnf
-rw-r----- 1 polkitd input      912 Nov 29 05:20 binlog.000001
-rw-r----- 1 polkitd input       16 Nov 29 05:20 binlog.index
-rw------- 1 polkitd input     1680 Nov 29 05:20 ca-key.pem
-rw-r--r-- 1 polkitd input     1112 Nov 29 05:20 ca.pem
-rw-r--r-- 1 polkitd input     1112 Nov 29 05:20 client-cert.pem
-rw------- 1 polkitd input     1680 Nov 29 05:20 client-key.pem
-rw-r----- 1 polkitd input   196608 Nov 29 05:20 #ib_16384_0.dblwr
-rw-r----- 1 polkitd input  8585216 Nov 29 05:20 #ib_16384_1.dblwr
-rw-r----- 1 polkitd input     5498 Nov 29 05:20 ib_buffer_pool
-rw-r----- 1 polkitd input 12582912 Nov 29 05:20 ibdata1
-rw-r----- 1 polkitd input 50331648 Nov 29 05:20 ib_logfile0
-rw-r----- 1 polkitd input 50331648 Nov 29 05:20 ib_logfile1
-rw-r----- 1 polkitd input 12582912 Nov 29 05:20 ibtmp1
drwxr-x--- 2 polkitd input      187 Nov 29 05:20 #innodb_temp
drwxr-x--- 2 polkitd input      143 Nov 29 05:20 mysql
-rw-r----- 1 polkitd input 29360128 Nov 29 05:20 mysql.ibd
drwxr-x--- 2 polkitd input     8192 Nov 29 05:20 performance_schema
-rw------- 1 polkitd input     1680 Nov 29 05:20 private_key.pem
-rw-r--r-- 1 polkitd input      452 Nov 29 05:20 public_key.pem
-rw-r--r-- 1 polkitd input     1112 Nov 29 05:20 server-cert.pem
-rw------- 1 polkitd input     1680 Nov 29 05:20 server-key.pem
drwxr-x--- 2 polkitd input       28 Nov 29 05:20 sys
-rw-r----- 1 polkitd input 10485760 Nov 29 05:20 undo_001
-rw-r----- 1 polkitd input 11534336 Nov 29 05:20 undo_002

6.遠程連接:

[root@localhost ~]# mysql -h192.168.174.30 -P30160 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

4.高級存儲-PV和PVC:

1.安裝nfs服務器:

  • master節(jié)點上:
    • 使配置生效

      exportfs -r
    • 將共享目錄以讀寫權限暴露給192.168.174.0/24網段中的所有主機

      cat << eof >> /etc/exports
      /root/nfs/mysql 192.168.174.0/24(rw,no_root_squash)
      eof
    • 啟動nfs服務

      systemctl enable nfs-server;systemctl restart nfs-server
    • 準備一個共享目錄

      mkdir -p /root/nfs/mysql -pv;chmod o=rwx /root/nfs/mysql
    • 在master上安裝nfs服務:

      yum install nfs-utils -y
  • node節(jié)點:

    • 接下來,要在的每個node節(jié)點上都安裝下nfs,這樣的目的是為了node節(jié)點可以驅動nfs設備

      yum install nfs-utils -y
      systemctl enable nfs-server;systemctl restart nfs-server

2.創(chuàng)建pv:

cat << eof > pv1.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv1
spec:
  capacity:                                                 # 存儲能力,目前只支持存儲空間的設置
    storage: 3Gi
  accessModes:                                              # 訪問模式:讀寫權限,可以被多個節(jié)點掛載
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain                     # 回收策略
  nfs: 
    path: /root/nfs/mysql/data                              # 這里的路徑必須和nfs服務器配置文件中的某一個一致
    server: 192.168.174.30                                  # nfs服務器地址
eof
kubectl apply -f pv1.yaml

3.創(chuàng)建mysql的yaml文件:

cat << eof > mysql.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
  namespace: mysql
spec:
  accessModes:                              # 訪問模式:讀寫權限,可以被多個節(jié)點掛載
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1                          # 通過kubectl explain deployment命令查看版本
kind: Deployment                             # 資源類型
metadata:
  name: mysql-deployment                     # 資源名稱
  namespace: mysql                           # 指定命名空間
spec:
  replicas: 3                                # 控制器下的pod數
  selector:
    matchLabels:
      app: mysql                             # 這是控制器用來控制pod的標簽
  template:
    metadata:
      labels:
        app: mysql                           # pod的標簽
    spec:
      containers:
        - name: mysql                        # 容器名
          image: mysql:8.0.20                # 容器鏡像
          env:                               # mysql環(huán)境參數
          - name: MYSQL_ROOT_PASSWORD        # 指定ROOT用戶密碼
            value: "你的密碼"
          ports:                             # 容器暴露的端口
          - name: mysql
            containerPort: 3306
          volumeMounts:                      # 容器內的被掛載目錄
          - name: mysql-data
            mountPath: /var/lib/mysql
      volumes:
      - name: mysql-data
        persistentVolumeClaim:
          claimName: mysql-pvc
          readOnly: false
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-nodeport
  namespace: mysql
spec:
  selector:
    app: mysql                               # 服務通過此標簽連接deployment資源來暴露端口
  type: NodePort                             # 服務類型:NodePort
  ports:                                     # 不指定NodePort端口就會自動分配,(默認的取值范圍是:30000-32767)
  - protocol: TCP
    port: 3306
    targetPort: 3306
eof

4.創(chuàng)建mysq應用:

kubectl apply -f mysql.yaml

5.查看pod:

[root@master ~]# kubectl get deployment,pod,svc,pvc -n mysql -o wide
NAME                               READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS   IMAGES         SELECTOR
deployment.apps/mysql-deployment   3/3     3            3           3m4s   mysql        mysql:8.0.20   app=mysql

NAME                                    READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
pod/mysql-deployment-574486b789-l9f4h   1/1     Running   0          3m4s   10.244.2.14   node2   <none>           <none>
pod/mysql-deployment-574486b789-ng4x8   1/1     Running   0          3m4s   10.244.1.6    node1   <none>           <none>
pod/mysql-deployment-574486b789-sqsll   1/1     Running   2          3m4s   10.244.2.13   node2   <none>           <none>

NAME                     TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE    SELECTOR
service/mysql-nodeport   NodePort   10.105.41.7   <none>        3306:30165/TCP   3m4s   app=mysql

NAME                              STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE    VOLUMEMODE
persistentvolumeclaim/mysql-pvc   Bound    pv1      3Gi        RWX                           3m4s   Filesystem
[root@master ~]# kubectl get pv -o wide
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS   REASON   AGE   VOLUMEMODE
pv1    3Gi        RWX            Retain           Bound    mysql/mysql-pvc                           4m    Filesystem

6.遠程連接:

[root@localhost ~]# mysql -h192.168.174.30 -P30165 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

到了這里,關于使用k8s部署Mysql實例~hostpath,nfs服務器,PV和PVC持久化的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 在k8s中部署nfs-client-provisioner

    在部署nfs-client-provisioner之前,需要先部署nfs服務。 因為,nfs-client-provisioner創(chuàng)建的pv都是要在nfs服務器中搭建的。 本示例中的nfs server的地址如下: 執(zhí)行以下的命令,在每個節(jié)點部署nfs工具,后面pod啟動,掛載nfs的存儲會使用 通過以下yaml文件,創(chuàng)建需要的service account 創(chuàng)建

    2024年02月02日
    瀏覽(20)
  • k8s安裝hostPath方式存儲的PostgreSQL15

    在這里,我們使用本地目錄/路徑作為永久存儲資源(/mnt/data) 查看運行結果

    2024年02月03日
    瀏覽(16)
  • k8s實戰(zhàn)案例之部署Nginx+Tomcat+NFS實現(xiàn)動靜分離

    k8s實戰(zhàn)案例之部署Nginx+Tomcat+NFS實現(xiàn)動靜分離

    根據業(yè)務的不同,我們可以導入官方基礎鏡像,在官方基礎鏡像的基礎上自定義需要用的工具和環(huán)境,然后構建成自定義出自定義基礎鏡像,后續(xù)再基于自定義基礎鏡像,來構建不同服務的基礎鏡像,最后基于服務的自定義基礎鏡像構建出對應業(yè)務鏡像;最后將這些鏡像上傳

    2024年02月07日
    瀏覽(21)
  • 【K8s】3# 使用kuboard管理K8s集群(NFS存儲安裝)

    【K8s】3# 使用kuboard管理K8s集群(NFS存儲安裝)

    最完整的學習文檔莫過于官網:直達地址:Kuboard for K8S Kubernetes 對 Pod 進行調度時,以當時集群中各節(jié)點的可用資源作為主要依據,自動選擇某一個可用的節(jié)點,并將 Pod 分配到該節(jié)點上。在這種情況下,Pod 中容器數據的持久化如果存儲在所在節(jié)點的磁盤上,就會產生不可預

    2024年01月20日
    瀏覽(28)
  • k8s使用新版nfs-client

    nfs-client 官方github地址 安裝NFS helm安裝nfs-client

    2024年02月11日
    瀏覽(22)
  • K8S使用持久化卷存儲到NFS(NAS盤)

    K8S使用持久化卷存儲到NFS(NAS盤)

    參考文章:K8S-v1.20中使用PVC持久卷 - 知乎 目錄 1、概念: 1.1 基礎概念 1.2 PV的配置 1.2.1 靜態(tài)PV配置 1.2.2 動態(tài)PV配置 1.2.3 PVC與PV的綁定 1.2.4 PVC及PV的使用 2 部署PV及PVC 2.1 所有K8S機器都需要安裝NFS程序 2.2 僅針對需要暴露文件服務的機器開啟NFS服務 ? ? ? ? 2.2.1 Linux為例開啟NFS服

    2023年04月26日
    瀏覽(27)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主從數據庫集群)

    [Kubernetes]8. K8s使用Helm部署mysql集群(主從數據庫集群)

    上一節(jié)講解了K8s包管理工具Helm、使用Helm部署mongodb集群(主從數據庫集群),這里來看看 K8s使用Helm部署mysql集群(主從數據庫集群) 無本地存儲: 當重啟的時候,數據庫消失 (1).打開官網的應用中心 打開應用中心,搜索mysql (2).安裝? 1).添加repo倉庫 2).安裝 具體命令如下:? 3).自動生成

    2024年01月21日
    瀏覽(235)
  • ubuntu單服務器部署k8s

    ubuntu單服務器部署k8s

    初學k8s,看到網上的教程非常雜亂,并且環(huán)境什么的都沒說清楚,對于初學者很不友好,導致安裝的過程總是出錯,并且不能安裝到符合自己要求的版本或者相應的環(huán)境,所以此文對環(huán)境做了詳細的說明,前前后后安裝了兩三天幾十遍,把所有的問題都解決了,本人親測安裝

    2024年04月15日
    瀏覽(28)
  • K8s部署單機mysql

    定制配置數據存放在configMap mysql數據放在/opt/mysql目錄下(/opt/mysql目錄需要事先創(chuàng)建) root賬號密碼使用環(huán)境變量env 服務暴露方式為nodePort,端口30336 這里為了簡單,PV使用了hostPath,所以需要將pod固定在一個node上??煽紤]使用nfs。 mysql57_deploy.yml

    2024年02月11日
    瀏覽(22)
  • k8s單機部署mysql

    k8s單機部署mysql

    前面我們學習了k8s入門系列文章,了解了k8s的一些基礎概念以及怎么使用。本篇文章將進行一個小小的實戰(zhàn),使用k8s來部署單機版的mysql數據庫,基本涵蓋到前面講到的Namespace、Pod、Deployment、Service、PV、PVC、Secret等資源對象。 我們先畫一張結構圖來表示整個部署的邏輯流程,

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包