亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于原生云的MySQL服務(wù)系統(tǒng)研究與應(yīng)用

        2023-06-22 21:52:38朱常鵬李剛
        無(wú)線互聯(lián)科技 2023年4期
        關(guān)鍵詞:云計(jì)算容器數(shù)據(jù)庫(kù)

        朱常鵬 李剛

        摘要:原生云作為云計(jì)算領(lǐng)域中的最新虛擬化技術(shù),最顯著的優(yōu)勢(shì)是開銷小、易擴(kuò)展、易維護(hù),越來(lái)越多的企業(yè)使用原生云部署它們的應(yīng)用系統(tǒng)。K8s源自于谷歌,是目前最主流的原始云。文章提出實(shí)現(xiàn)一種基于K8s的MySQL服務(wù)系統(tǒng)。該系統(tǒng)將MySQL數(shù)據(jù)庫(kù)遷移到原生云平臺(tái),并充分利用K8s的自動(dòng)伸縮、數(shù)據(jù)持久化和負(fù)載均衡等特性,使得數(shù)據(jù)庫(kù)突破了單機(jī)存儲(chǔ)空間和計(jì)算能力的限制,這不僅可以有效節(jié)約本地服務(wù)器的維護(hù)成本,而且可以按需提升系統(tǒng)的并發(fā)數(shù)據(jù)查詢與操作性能。

        關(guān)鍵詞:容器:Docker;云計(jì)算;數(shù)據(jù)庫(kù);Kubernetes

        中圖分類號(hào):TP393

        文獻(xiàn)標(biāo)志碼:A

        1 系統(tǒng)研究背景與意義

        目前,云數(shù)據(jù)庫(kù)正在蓬勃發(fā)展,已經(jīng)成為一個(gè)重要的研究方向[1]。它不僅易于管理、方便擴(kuò)展并且用戶無(wú)需維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)、周期性更新數(shù)據(jù)庫(kù)的補(bǔ)丁程序、系統(tǒng)強(qiáng)化和備份等。此外,除了數(shù)據(jù)所需的存儲(chǔ)空間外,集群中的虛擬機(jī)數(shù)量能根據(jù)負(fù)載自動(dòng)增加,從而實(shí)現(xiàn)高可用性和強(qiáng)伸縮性[2]。從服務(wù)角度而言,云數(shù)據(jù)庫(kù)提供了基于Weh的UI界面來(lái)幫助用戶進(jìn)行數(shù)據(jù)庫(kù)操作和實(shí)例控制,同時(shí)也可以幫助用戶進(jìn)行數(shù)據(jù)庫(kù)的備份與恢復(fù),大大地提高了數(shù)據(jù)管理的便捷性與安全性,并且可以在線監(jiān)控和擴(kuò)展數(shù)據(jù)庫(kù)來(lái)滿足不同的應(yīng)用需求??傮w而言,構(gòu)建在云上的數(shù)據(jù)庫(kù)可以快速、低成本且高效率地?cái)U(kuò)展,也可廣泛地用于實(shí)驗(yàn)教學(xué)環(huán)境[3]?;诖耍疚拈_發(fā)并完成了一個(gè)基于Kuhernetes的MySQL服務(wù)系統(tǒng),它可以為每一個(gè)使用該系統(tǒng)的用戶提供一個(gè)MySQL環(huán)境,對(duì)于大規(guī)模彈性部署基于MySQL的應(yīng)用具有重要意義。

        2 系統(tǒng)設(shè)計(jì)

        2.1 Kubernetes介紹

        Kuherneces的主要結(jié)構(gòu)如圖1所示,它采用了典型的主一從架構(gòu)。這種架構(gòu)不僅可以方便集群的日常管理與維護(hù),也易于集群的橫向擴(kuò)展與收縮。它的核心主鍵分別是apiserv er.scheduler.kubelec和kuhe -proxy。在Kuherneces中,apiserver是消息中樞,它是所有其他主組件和輔助組件可以直接通信的唯一組件。因此,它充當(dāng)所有集群通信的接口,與apiserver的所有聯(lián)系均使用安全端口通信。在實(shí)際生成資源并將其保存到數(shù)據(jù)存儲(chǔ)之前apiserver負(fù)責(zé)所有資源創(chuàng)建請(qǐng)求的接口驗(yàn)證。

        由于Kuherneces是業(yè)務(wù)流程框架,因此它用于管理Pod調(diào)度的內(nèi)置邏輯。sched uler負(fù)責(zé)這種內(nèi)置的邏輯判斷。調(diào)度決策取決于諸多因素,它們能夠影響甚至阻止Pod的調(diào)度與再調(diào)度,具體包括:應(yīng)用程序?qū)Y源的要求、跨節(jié)點(diǎn)的資源可用性、Pod規(guī)范是否具有親和力標(biāo)簽、要求在特定節(jié)點(diǎn)上進(jìn)行調(diào)度、節(jié)點(diǎn)是否具有某些污點(diǎn)/容差。kuhe - scheduler調(diào)度程序會(huì)量化地綜合考慮上述因素,執(zhí)行對(duì)Pod的調(diào)度。

        kuhelec組件是在集群的每個(gè)工作程序節(jié)點(diǎn)上運(yùn)行的代理。以本系統(tǒng)為例,kubelec負(fù)責(zé)管理Pod中運(yùn)行的MySQL容器和PhpMyAdmain容器。它通過(guò)周期性地檢測(cè)容器的當(dāng)前狀態(tài)與存儲(chǔ)在etcd中的期望狀態(tài)是否匹配來(lái)管理容器的運(yùn)行,具體包括容器的終止、重啟或遷移等。podspec可能通過(guò)kube - apiserver傳遞到kuhelec以便在該特定節(jié)點(diǎn)上運(yùn)行Pod.或者通過(guò)命令行工具作為文件傳遞。

        kube-proxy組件是在每個(gè)節(jié)點(diǎn)上運(yùn)行的網(wǎng)絡(luò)代理,負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求。該代理比較靈活,可以處理簡(jiǎn)單或循環(huán)的TCP.UDP或SCTP轉(zhuǎn)發(fā)。每個(gè)節(jié)點(diǎn)通過(guò)kube -proxy與Kubernetes服務(wù)進(jìn)行交互。

        2.2 系統(tǒng)設(shè)計(jì)

        系統(tǒng)模塊如圖2所示。該系統(tǒng)主要分為5個(gè)部分:MySQL部署模塊、MySQL服務(wù)模塊、PhpMyAdmain部署模塊、PhpMyAdmain服務(wù)模塊和lngress模塊(入口控制器模塊)。MySQL部署模塊主要用來(lái)創(chuàng)建MySQL的Pod并且添加相應(yīng)的鏡像到Pod中。除此之外,該模塊還把容器依附到持久卷上面進(jìn)行持久化存儲(chǔ)。MySQL服務(wù)模塊將Service定義為節(jié)點(diǎn)Pod的邏輯集合,它提供了可以訪問(wèn)Pod的IP地址和DNS。使用該模塊可以非常輕松地通過(guò)Pod擴(kuò)展管理負(fù)載平衡。MySQL服務(wù)模塊中的服務(wù)實(shí)質(zhì)上是Kubernetes中的REST對(duì)象,可以通過(guò)Kubernetesapiserver創(chuàng)建。不同服務(wù)之間通過(guò)TCP/IP協(xié)議通信與數(shù)據(jù)傳輸。PhpMyAdmin模塊主要用來(lái)創(chuàng)建負(fù)責(zé)可視化工具的Pod,并且與MySQL容器進(jìn)行連接。為了簡(jiǎn)化PhpMyAdmin的對(duì)外訪問(wèn),入口控制器模塊將PhpMyAdmin連接公共Internet網(wǎng),同時(shí)創(chuàng)建一個(gè)入口資源,將其指向PhpMyAdmin容器的服務(wù)資源。

        2.3 系統(tǒng)開發(fā)工具

        系統(tǒng)逐漸構(gòu)建并實(shí)現(xiàn)的過(guò)程中,使用了很多不同的工具,這些工具縮短了配置環(huán)境的時(shí)間,同時(shí)也為后續(xù)部署集群和創(chuàng)建節(jié)點(diǎn)提供了支持。系統(tǒng)使用的開發(fā)環(huán)境為MacOS,開發(fā)工具為DockerDesktop,Kuherneces和ZSHshell等。

        3系統(tǒng)實(shí)現(xiàn)

        系統(tǒng)需要構(gòu)建一個(gè)Kuhernetes集群,集群中擁有一個(gè)Masler集群控制節(jié)點(diǎn),并在集群中創(chuàng)建一個(gè)擁有兩個(gè)Pocl的Node節(jié)點(diǎn),其中第一個(gè)Pod包含一個(gè)MySQL容器,并通過(guò)Persistent Volume Claim持久化數(shù)據(jù)庫(kù)的存儲(chǔ),第二個(gè)Pod里面創(chuàng)建PhpMyAdmain容器,并通過(guò)設(shè)置環(huán)境變量來(lái)連接MySQL,這樣就實(shí)現(xiàn)了運(yùn)行在云中的MySQL服務(wù)系統(tǒng)。本系統(tǒng)的核心功能包含:MySQL的持久卷聲明、MySQLPod創(chuàng)建和PVC的使用和MySQLservice的聲明。下面將逐一介紹它們的具體實(shí)現(xiàn)思路與方法。

        3.1

        MySQL的持久卷聲明

        在持久卷聲明中,首先聲明了PVC類型,然后賦予了名字和讀取的模式,最后為聲明分配了1 Gi的存儲(chǔ)空間,隨后可以掛載到MySQL的Pod上來(lái)實(shí)現(xiàn)持久存儲(chǔ),代碼片段如下:

        mysql-persistentVolumeClaim. vaml

        apiversion:vl

        kind: Persistentvolumec-.laim

        metadata:

        name:mysql-data-disk

        spec.:

        accessModes:

        -ReadwriteOnceresources:

        requests:

        storage:1Gi

        3.2

        MySQL Pod創(chuàng)建和PVC的使用

        為了創(chuàng)建Pod.首先應(yīng)聲明資源類型為deployment,然后設(shè)置好相應(yīng)的鏡像名稱、容器端口、數(shù)據(jù)庫(kù)密碼等變量,然后將剛剛聲明好的PVC掛載到這個(gè)Pod上實(shí)現(xiàn)持久化存儲(chǔ)。當(dāng)退出數(shù)據(jù)庫(kù)再次進(jìn)入時(shí),之前的改變都將被保存。代碼片段如下:

        spec:

        conrainers:

        - name:mysql

        image:mnysql:5.7

        ports:

        - containerPort:3386

        voluneMounts:

        - mountPaLh:”var/lib/mysql"

        subPath:mysql"

        name:mysql-data

        env:

        -name: MYSqL_ROOT_PASSMORD

        valueFrom:

        secretKeyRef:

        name:_mysql-secrets

        key:ROOT_PASSNORD

        volumes:

        - name:mysql-data

        persistentNolumec.laim:

        claimnName: mysql-data-disk

        3.3

        MySQL service的聲明

        在service類型資源中,筆者通過(guò)設(shè)定了這個(gè)Pod的端口號(hào)從而確定了IP地址,PhpMyAdmain就是通過(guò)設(shè)定對(duì)應(yīng)于servic.e文件的端口號(hào)來(lái)連接數(shù)據(jù)庫(kù),代碼片段如下所示:

        kind:Service

        metadata:

        name:mysql-service

        spec:

        selector:

        app:mysql

        ports:

        - prolocol:TCP

        port:3306

        targetPort:3306

        此外,為了解決持久化容器存儲(chǔ)的問(wèn)題,本文引入了兩個(gè)新的API資源-Persiscent Volume和Persiscent Volume Claim。如果Pod是有狀態(tài)的,那么它將始終需要關(guān)聯(lián)一個(gè)持久卷,表示Pod可能消耗的后端存儲(chǔ)實(shí)體將是PersistencVolume。PersistencVolume Claim持久卷聲明則代表特定Pod對(duì)持久卷的專有使用。

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

        為了驗(yàn)證系統(tǒng)的正確性,本節(jié)構(gòu)建了一個(gè)Kuherneles集群。集群中擁有一個(gè)Masler集群控制節(jié)點(diǎn),并通過(guò)在集群中創(chuàng)建一個(gè)擁有兩個(gè)Pod的Node節(jié)點(diǎn),實(shí)現(xiàn)了運(yùn)行在云中的MySQL服務(wù)系統(tǒng)。在第一個(gè)Pod中,筆者通過(guò)docker拉取的鏡像創(chuàng)建了第一個(gè)MySQL容器,并通過(guò)Persislent Volume Claim持久化數(shù)據(jù)庫(kù)的存儲(chǔ),成功部署了第一個(gè)servlce。接下來(lái)在第二個(gè)Pod中,通過(guò)docker拉取了PhpMyAdmain的鏡像,并設(shè)置環(huán)境變量以連接集群中的數(shù)據(jù)庫(kù),實(shí)現(xiàn)了MySQL的可視化管理。

        在下面的測(cè)試中,筆者編寫4組不同的soL測(cè)試代碼,首先創(chuàng)建一個(gè)名字為World的數(shù)據(jù)庫(kù),然后每組測(cè)試代碼分別創(chuàng)建一個(gè)table,并向其中插入記錄。筆者對(duì)系統(tǒng)進(jìn)行了5次功能測(cè)試。

        (1)創(chuàng)建名字為World的數(shù)據(jù)庫(kù),退出數(shù)據(jù)庫(kù)后再次進(jìn)入,檢查存儲(chǔ)是否持久。

        (2)使用SQL語(yǔ)言創(chuàng)建名字為city的表格,并向其中插入25條城市記錄,退出數(shù)據(jù)庫(kù)后再次進(jìn)入,檢查存儲(chǔ)是否持久。

        (3)創(chuàng)建名字為Countrv的表格,并向其中插入25條記錄,退出數(shù)據(jù)庫(kù)后再次進(jìn)入,檢查存儲(chǔ)是否持久。

        (4)創(chuàng)建名字為Country Language的表格,并向其中插入25條記錄,退出數(shù)據(jù)庫(kù)后再次進(jìn)入,檢查存儲(chǔ)是否持久化。

        (5)執(zhí)行選擇SELECT語(yǔ)句,查看數(shù)據(jù)庫(kù)是否可以正常篩選。

        測(cè)試結(jié)果表明,本文提出設(shè)計(jì)與實(shí)現(xiàn)的系統(tǒng)能夠正確地完成預(yù)期的功能。

        5 結(jié)語(yǔ)

        本文提出一種基于Kubernetes的云上MySQL數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)方法,充分利用基于Kubernetes的原生云的低開銷、集群化、通用性以及靈活的伸縮功能。該系統(tǒng)展示出較好的并發(fā)數(shù)據(jù)查詢、插入和自動(dòng)橫向擴(kuò)展性能。實(shí)驗(yàn)表明該系統(tǒng)具備較好的實(shí)用性,各項(xiàng)性能指標(biāo)符合預(yù)期。本文同時(shí)也展示了該系統(tǒng)的設(shè)計(jì)思想以及關(guān)鍵組件的實(shí)現(xiàn)方式與方法,以期為設(shè)計(jì)實(shí)現(xiàn)基于Kubernetes的其他服務(wù)軟件系統(tǒng)提供借鑒。

        參考文獻(xiàn)

        [1]ZHU C P, HAN B, ZHAO Y L.A bi-metricautoscaling approaCh for n-Tier web applications onKubernetes[J].Frontiers of Computer ScienCe, 2021(3):1-12.

        [2] ZHU C P,HAN B,ZHAO Y L.A comparative studyof spark on the bare metal and kubernetes[ EB/OLl.(2020 - 12 - 27)[2023 - 03 - 20].https://www.researchgaLe. net/publication/350593000一A—Compar -ative_ Study—of—Spark—on—the—bare—metal—and—Kubernetes.

        [3]朱常鵬,劉元超,李剛.Spark實(shí)時(shí)大數(shù)據(jù)處理技術(shù)在線開放課程建設(shè)與實(shí)踐[J].現(xiàn)代信息科技,2021(12):195-198.

        (編輯王雪芬)

        猜你喜歡
        云計(jì)算容器數(shù)據(jù)庫(kù)
        Different Containers不同的容器
        難以置信的事情
        數(shù)據(jù)庫(kù)
        基于云計(jì)算的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)
        實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
        云計(jì)算中的存儲(chǔ)虛擬化技術(shù)應(yīng)用
        科技視界(2016年20期)2016-09-29 13:34:06
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        取米
        高清在线亚洲中文精品视频| 老师开裆丝袜喷水视频| 亚洲成av人的天堂在线观看| 免费国精产品自偷自偷免费看| 亚洲av人妖一区二区三区| 精品人妻一区二区三区不卡毛片| 亚洲国产精品18久久久久久| 国产精品沙发午睡系列990531 | 色偷偷亚洲精品一区二区 | 亚洲av狠狠爱一区二区三区| 性久久久久久| 久久精品国产亚洲精品| 深夜福利国产| 性感美女脱内裤无遮挡| 日本最新免费二区| 亚洲乱码视频在线观看| 亚洲av网站首页在线观看| 亚洲熟妇自偷自拍另类| 国产综合无码一区二区辣椒| 粉嫩少妇内射浓精videos| 中文字幕在线观看乱码一区| 不卡视频一区二区三区| 蜜桃av噜噜一区二区三区香| 在线观看国产成人自拍视频| 欧美私人情侣网站| 99热精品国产三级在线观看 | 日韩夜夜高潮夜夜爽无码| 久久无码高潮喷水| 日韩偷拍视频一区二区三区| 日韩美女亚洲性一区二区| 精品久久久无码中字| 乱子伦av无码中文字幕| 操国产丝袜露脸在线播放| 午夜精品久久久久久久99老熟妇 | 风流少妇又紧又爽又丰满| 日韩丝袜人妻中文字幕| 亚洲中文字幕av天堂自拍| 国产精品免费大片| 超清无码AV丝袜片在线观看| 国产高清在线一区二区不卡| 免费无遮挡禁18污污网站|