前言
在Linux系統(tǒng)下部署Mysql數(shù)據(jù)庫(kù),大家都比較熟悉,輕車(chē)熟路。但是如何在K8S環(huán)境部署Mysql數(shù)據(jù)庫(kù),卻是一個(gè)全新的課題,涉及到數(shù)據(jù)的存儲(chǔ)與同步,遠(yuǎn)比想像的復(fù)雜,下面我們將花幾篇文章來(lái)詳細(xì)探討一下這個(gè)問(wèn)題。本篇主要介紹如何通過(guò)yaml文件部署mysql,如何進(jìn)入docker容器操作mysql,以及存在的問(wèn)題。以下的演示都是基于minikube。
一、下載mysql鏡像文件
執(zhí)行docker search mysql命令查詢(xún)mysql鏡像文件
執(zhí)行docker pull mysql:5.7命令下載5.7版本mysql鏡像。
二、創(chuàng)建deployment和service
一個(gè)yaml文件可以創(chuàng)建多個(gè)資源,只需要使用—分隔即可,編寫(xiě)mysql.yaml文件創(chuàng)建deployment和service:
apiVersion: apps/v1 #版本
kind: Deployment #創(chuàng)建資源的類(lèi)型
metadata: #資源的元數(shù)據(jù)
name: mysql-dep #資源的名稱(chēng),是元數(shù)據(jù)必填項(xiàng)
spec: #期望狀態(tài)
replicas: 1 #創(chuàng)建的副本數(shù)量(pod數(shù)量),不填默認(rèn)為1
selector: #
matchLabels:
app: mysql-pod
template: #定義pod的模板
metadata: #pod的元數(shù)據(jù)
labels: #labels標(biāo)簽,必填一個(gè)
app: mysql-pod
spec: #pod的期望狀態(tài)
containers: #容器
- name: mysql #容器名稱(chēng)
image: mysql:5.7 #鏡像
imagePullPolicy: IfNotPresent
ports: #容器的端口
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "root"
---
apiVersion: v1 #版本
kind: Service #創(chuàng)建資源的類(lèi)型
metadata: #資源的元數(shù)據(jù)
name: mysql-svc #資源的名稱(chēng),是元數(shù)據(jù)必填項(xiàng)
labels: #labels標(biāo)簽
app: mysql-svc
spec: #期望狀態(tài)
type: NodePort #服務(wù)類(lèi)型
ports: #端口
- port: 3306
targetPort: 3306 #與containerPort一樣
protocol: TCP
nodePort: 30306
selector:
app: mysql-pod
執(zhí)行kubectl apply -f mysql.yaml命令創(chuàng)建deployment和service。
三、進(jìn)入docker容器操作mysql
執(zhí)行docker ps -a命令查看docker中運(yùn)行的容器,找到mysql的CONTAINER ID。
執(zhí)行docker exec -it CONTAINERID bash命令進(jìn)入容器。
四、Pod volumn存儲(chǔ)無(wú)法持久化
在mysql中增加名為test的數(shù)據(jù)庫(kù)。
刪除pod,k8s會(huì)自動(dòng)再啟動(dòng)一個(gè)pod。
再次進(jìn)入新的容器查看mysql數(shù)據(jù),已經(jīng)沒(méi)有test的數(shù)據(jù)庫(kù)了。
五、刪除deployment和service
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-422475.html
總結(jié)
可見(jiàn),Mysql正常部署的時(shí)候,數(shù)據(jù)是存放在Pod volumn中的,此時(shí)它的數(shù)據(jù)是無(wú)法持久化的??紤]到數(shù)據(jù)的持久化需求,K8S提供了PV和PVC機(jī)制,下一篇我們將重點(diǎn)探討一下Mysql數(shù)據(jù)如何存放在PV中。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-422475.html
到了這里,關(guān)于【云原生--K8S】 yaml文件部署Mysql數(shù)據(jù)庫(kù)(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!