一、Mysql介紹
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。MySQL是一種開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),可將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大的倉(cāng)庫(kù)內(nèi),從而加快了訪問速度并提高了靈活性。MySQL 使用了標(biāo)準(zhǔn)的 SQL 語(yǔ)言形式。支持大型的數(shù)據(jù)庫(kù),可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。MySQL 還可用于多種系統(tǒng)中,且支持多種語(yǔ)言。
二、kubernetes集群介紹
1.k8s簡(jiǎn)介
kubernetes,簡(jiǎn)稱K8s,是用8代替名字中間的8個(gè)字符“ubernete”而成的縮寫。是一個(gè)開源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡(jiǎn)單并且高效(powerful),Kubernetes提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制。
2.k8s架構(gòu)圖
kubernetes集群架構(gòu)示意圖
三、本次實(shí)踐介紹
1.本次實(shí)踐簡(jiǎn)介
1.在k8s集群環(huán)境中快速部署一個(gè)mysql應(yīng)用服務(wù),在個(gè)人環(huán)境中測(cè)試與學(xué)習(xí);
2.本次實(shí)踐環(huán)境為個(gè)人測(cè)試環(huán)境,生產(chǎn)環(huán)境請(qǐng)謹(jǐn)慎使用;
3.本次實(shí)踐直接在yaml文件中寫入數(shù)據(jù)庫(kù)賬號(hào)信息,方便以最快速度部署一個(gè)測(cè)試數(shù)據(jù)庫(kù)服務(wù);
2.本次環(huán)境規(guī)劃
本次實(shí)踐規(guī)劃環(huán)境介紹
hostname | IP地址 | 操作系統(tǒng)版本 | k8s版本 | 角色 |
---|---|---|---|---|
k8s-master | 192.168.3.201 | centos7.6 | v1.23.1 | master節(jié)點(diǎn) |
k8s-node01 | 192.168.3.202 | centos7.6 | v1.23.1 | worker節(jié)點(diǎn) |
k8s-node02 | 192.168.3.203 | centos7.6 | v1.23.1 | worker節(jié)點(diǎn) |
三、檢查本地k8s集群環(huán)境
1.檢查k8s各節(jié)點(diǎn)狀態(tài)
檢查k8s各節(jié)點(diǎn)狀態(tài),確保k8s集群各節(jié)點(diǎn)狀態(tài)正常。
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 130d v1.23.1
k8s-node01 Ready <none> 130d v1.23.1
k8s-node02 Ready <none> 130d v1.23.1
2.檢查k8s版本
查看k8s的版本,注意部署應(yīng)用時(shí)兼容的k8s版本。
[root@k8s-master ~]# kubectl version --short
Client Version: v1.23.1
Server Version: v1.23.1
3.檢查k8s系統(tǒng)pod狀態(tài)
檢查k8s集群的系統(tǒng)pod狀態(tài),確保所有系統(tǒng)pod運(yùn)行正常。
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-7bc6547ffb-2nf66 1/1 Running 1 (8d ago) 130d
calico-node-8c4pn 1/1 Running 1 (8d ago) 130d
calico-node-f28qq 1/1 Running 1 (8d ago) 130d
calico-node-wmc2j 1/1 Running 1 (8d ago) 130d
coredns-6d8c4cb4d-6gm4x 1/1 Running 1 (8d ago) 130d
coredns-6d8c4cb4d-7vxlz 1/1 Running 1 (8d ago) 130d
etcd-k8s-master 1/1 Running 1 (8d ago) 130d
kube-apiserver-k8s-master 1/1 Running 1 (8d ago) 130d
kube-controller-manager-k8s-master 1/1 Running 1 (8d ago) 130d
kube-proxy-8dfw8 1/1 Running 1 (8d ago) 130d
kube-proxy-ghzrv 1/1 Running 1 (8d ago) 130d
kube-proxy-j867z 1/1 Running 1 (8d ago) 130d
kube-scheduler-k8s-master 1/1 Running 1 (8d ago) 130d
四、編輯mysql.yaml文件
編輯mysql.yaml,該文件使用最簡(jiǎn)單方式部署了一個(gè)mysql應(yīng)用服務(wù)。
[root@k8s-master mysql]# cat mysql.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql
name: my-mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers: # 定義容器部分
- image: mysql:5.7
name: mysql
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
---
apiVersion: v1
kind: Service
metadata:
name: my-db
spec:
ports:
- port: 3306
nodePort: 30011
selector:
app: mysql
type: NodePort
五、創(chuàng)建mysql應(yīng)用
1.應(yīng)用mysql.yaml
應(yīng)用mysql.yaml文件,快速創(chuàng)建部署一個(gè)數(shù)據(jù)庫(kù)服務(wù)。
[root@k8s-master mysql]# kubectl apply -f mysql.yaml
deployment.apps/my-mysql created
service/my-db created
2.查看pod狀態(tài)
檢查pod是否正常運(yùn)行,確保pod運(yùn)行狀態(tài)正常。如果運(yùn)行異常,可根據(jù)pod日志信息,判斷故障。
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-mysql-9b877f47-nqf5f 1/1 Running 0 7m54s
六、查看mysql服務(wù)IP
查看svc資源對(duì)象,查看mysql的外部訪問端口為30011文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-661437.html
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 130d
my-db NodePort 10.98.200.79 <none> 3306:30011/TCP 8m32s
七、外部客戶端遠(yuǎn)程訪問mysql
遠(yuǎn)程連接mysql服務(wù),進(jìn)入mysql數(shù)據(jù)庫(kù),確保能正常進(jìn)入。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-661437.html
[root@server ~]# mysql -h 192.168.3.202 -P30011 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
八、本次實(shí)踐總結(jié)
- 本次實(shí)踐是為了幫助新手快速部署一個(gè)mysql應(yīng)用,基于之前初學(xué)k8s的學(xué)習(xí)筆記整理而成。
- 可以配置持久存儲(chǔ)來(lái)保存mysql的數(shù)據(jù),使用storageclass來(lái)定義持久存儲(chǔ)的配置。
- 為了確保mysql數(shù)據(jù)庫(kù)的安全性,可以配置secret來(lái)保存敏感的數(shù)據(jù)庫(kù)密碼等信息。
- 可以配置一個(gè)初始化容器,用于檢查pod的運(yùn)行環(huán)境是否正常,從而提升應(yīng)用的可靠性。
- 可以進(jìn)一步優(yōu)化和擴(kuò)展這個(gè)yaml文件,添加更多功能和高級(jí)特性,以滿足具體的需求。
- 本次實(shí)踐的yaml文件可以作為新手進(jìn)階學(xué)習(xí)的基礎(chǔ)模板,通過不斷優(yōu)化和學(xué)習(xí)更多k8s的特性,可以更好地應(yīng)用于實(shí)際場(chǎng)景。
到了這里,關(guān)于云原生之在kubernetes集群下部署Mysql應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!