真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

k8s怎么看mysql k8s怎么看ip

linux和k8s和數(shù)據(jù)庫(kù)筆記

有關(guān)linux:

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比梧州網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式梧州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋梧州地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

1、卸載某一個(gè)特定的掛在點(diǎn)。

umount /dev/datavg01 /data01

2、移掉lvm。

vgremove /dev/datavg01

3、拷貝數(shù)據(jù)。

scp -r /home/gaoge.txt root@192.168.10.1:/opt 或rsync -av /root/rpmpkgs /tmp/backups/

4、顯示系統(tǒng)盤符并以樹(shù)狀格式展開(kāi)。

lsblk。

5、掃描新增設(shè)備。

echo "---" /sys/class/scsi-host/hosto/scan

6、強(qiáng)行殺死m(xù)ysql

kill -9 $(ps -ef | grep mysql)

7、將文件內(nèi)容以每一行5個(gè)的形式展示出來(lái)。

cat test2.txt | xargs -n 5

8、用cut去實(shí)現(xiàn)awk切割列的效果

cat/etc/passwd | cut -d : -f 2

9、sed、grsp、awk。之前已經(jīng)說(shuō)過(guò)了、具體看 從linux三劍客說(shuō)起 這篇。

10、增加一個(gè)oracle用戶讓其屬于oinstall組同時(shí)也隸屬于dba組。useradd oracle -g oinstall -G dba

11、新建立一個(gè)組groupnew并將組id修改為255。

groupadd -g 255 groupnew

12、將本地/dev/hdb整盤中的數(shù)據(jù)備份到/dev/hdd上。

dd if=/dev/hdb of=/dev/hdd

13、查看服務(wù)器cpu個(gè)數(shù)。

cat /proc/cpuinfo | grep "physical id" | wc -l

14、查看服務(wù)器io狀況并以每間隔1秒的速度輸出5次。

iostat 1 5

15、查看服務(wù)器內(nèi)存使用情況并以每間隔2秒的速度輸出10次。

vmstat 2 10

16、將gaoge.txt中的第一列db2找到并將db兩個(gè)字符用ab替換。

cat gaoge.txt |grep db2 | awk -F 2 '{print $1}' | tr db ab

17、將包名解壓到指定目錄。

tar -cxvf 包名 -C 指定的目錄

18、linux中前后臺(tái)任務(wù)切換。

ctrl+z 切換到后臺(tái)、jobs顯示id、fg + id 切換至前臺(tái)。

19、殺掉top下stopped的進(jìn)程。

ps -A -ostat,ppid,pid,cmd |grep -e '^[T]'

然后在進(jìn)行kill

20、監(jiān)控cpu狀態(tài)。

mpstat

21、查看虛擬內(nèi)存使用了多少。

swapon

22、每月1到10號(hào)4:45重啟nginx。

crontab -u root -l 顯示root當(dāng)前的計(jì)劃任務(wù)。

crontab -u root -e 后輸入以下內(nèi)容并保存退出。

45 4 1,10 ** systemctl start nginx

23、awk打印df -h 的第一列、第三列、最后一列。

df -h | awk '{print $1 " " $3 " " $NF}'

24、批量拉、打標(biāo)簽、推docker鏡像的shell腳本。

#!/bin/bash

for image in 'docker images | grep 10.171.10.1:10000 | awk ' { print $1 ":" $2 }

do

version = 'echo $image | awk -F / ' { print $2 } '

docker tag $image 192.168.10.1/$version

docker push 192.168.10.1/$version

done

25、正則表達(dá)式匹配電話號(hào)碼。

(?0d{2}[) -]?d{8}

26、編譯安裝三步驟。

./configure --prefix=安裝目錄

make

make install

有關(guān)kubernetes:

將kubernetes中pod的數(shù)據(jù)拷貝到物理宿主機(jī)上。

kubectl cp gyl-run/gyl-mysql-01020304: /opt/docker.sh /opt

將kubernetes中物理宿主機(jī)上的數(shù)據(jù)拷貝到pod中。

kubectl cp /opt/docker.sh gyl-run/gyl-mysql-01020304: /opt

檢查當(dāng)前用戶有沒(méi)有權(quán)限在k8s中創(chuàng)建資源權(quán)限。

kubectl auth can-i '*' '*'

檢查當(dāng)前用戶有沒(méi)有權(quán)限在k8s集群中創(chuàng)建namespace權(quán)限。

kubectl auth can-i create pods --all-namespaces

查看集群是否 健康 。

kubectl get cs

有關(guān)數(shù)據(jù)庫(kù):

查看 mysql 二進(jìn)制日志格式。

show variables like ‘%binlog_format%’

查看所有二進(jìn)制日志文件

show master logs

查看正在寫(xiě)入的二進(jìn)制日志

show master status

格式化二進(jìn)制顯示為sql格式

mysqlbinlog --base64 --output=decode-rows -v --start-date="2019-01-25 00:00:00" --stop-date=“2019-01-26 17:30” master-bin.000006

利用bin-log去還原數(shù)據(jù)

/usr/bin/mysqlbinlog --no-default /var/lib/mysql/mysql-bin.00001 | usr/bin/mysql -u root -p pwd test

連接 postgresql

psql -U 用戶名 -d 數(shù)據(jù)

數(shù)據(jù)庫(kù)名 -h 主機(jī)地址 -p端口(默認(rèn)端口為5432)

l 顯示數(shù)據(jù)庫(kù)列表

d 顯示所有表

d 表名稱 顯示表結(jié)構(gòu)

du 顯示所有數(shù)據(jù)庫(kù)用戶

c 數(shù)據(jù)庫(kù)名 連接數(shù)據(jù)庫(kù)

q 退出pg窗口

pg備份:

pg_dump -U kong -d kong -f /opt/2019-01-26-pg.sql

pg還原:

psql -d kong -U kong -f /opt/2019-01-26-pg.sql

mongo 批量更新數(shù)據(jù):把a(bǔ)ge大于20的class name修改為,設(shè)置multi為true

Kubernetes 部署 Mysql 8

mysql可以以docker的形式在集群內(nèi)部署,也可以安裝在集群之外,以服務(wù)的形式部署到集群內(nèi)。

(1)、如果是在集群內(nèi)部署,可以啟動(dòng)一個(gè)ReplicationController,用以對(duì)mysql pod進(jìn)行監(jiān)控,并同時(shí)啟動(dòng)一個(gè)Service,用以集群訪問(wèn)。

(2)、如果mysql是安裝在集群之外,那么可以啟動(dòng)一個(gè)Endpoint和Service,將mysql引入集群之中。

下面分別對(duì)這兩種方式進(jìn)行部署。

創(chuàng)建mysql-rc.yaml和mysql-svc.yaml,分別如下:

mysql-rc.yaml

mysql-svc.yaml

在mysql-rc.yaml中,image參數(shù)可以指定mysql的版本,如8.0.11、5.7.22等。這里省略了,表示用latest。另外,可以指定鏡像庫(kù),這里使用阿里云鏡像庫(kù),在安裝docker時(shí)進(jìn)行了配置。env參數(shù)指定了mysql的root密碼。

在mysql-svc.yaml中,targetPort表示mysql pod中mysql窗口的目標(biāo)端口,默認(rèn)為3306,type類型為NodePort,表示將映射到本地端口,本地端口為nodePort: 30306。

接下來(lái)啟動(dòng)ReplicationController和Service,執(zhí)行以下命令:

啟動(dòng)后可以查看mysql部署在了哪個(gè)node上,執(zhí)行以下命令可以查看:

(6)、退出mysql和容器,執(zhí)行quit;退出mysql,按ctrl+p后,再按ctrl+q從容器中返回node主機(jī)。

設(shè)置好mysql后,可以遠(yuǎn)程連接node中的mysql,node的ip為127.0.0.1,映射的端口為30306,可以用navicat工具連接到這個(gè)myql。

如何訪問(wèn)k8s集群內(nèi)部署的mysql服務(wù)

雖然 kubernetes 社區(qū)一直在努力使得有狀態(tài)應(yīng)用成為一等公民,也推出了 statefulset 控制器支持 pod 的順序部署,穩(wěn)定的域名訪問(wèn)和存儲(chǔ)訪問(wèn)。但鑒于 MySQL 部署運(yùn)維的多樣性和復(fù)雜性,在 kubernetes 上部署 MySQL 仍然要面臨眾多挑戰(zhàn)。

1、業(yè)務(wù)流量入口的配置方式

傳統(tǒng)虛擬機(jī)環(huán)境下,我們通過(guò)虛IP的方式,讓業(yè)務(wù)應(yīng)用都配置事先定義的一個(gè)虛IP為鏈接數(shù)據(jù)庫(kù)的地址,然后由高可用服務(wù)保證虛IP始終能被路由到master數(shù)據(jù)庫(kù)。在kubernetes中,出現(xiàn)了一層網(wǎng)絡(luò)插件屏蔽了底層網(wǎng)絡(luò)拓?fù)?,高可用服?wù)管理虛IP的方式需要隨之適應(yīng)調(diào)整,比如通過(guò)service結(jié)合標(biāo)簽完成虛IP的漂移,但service本身是kubernetes提供的一項(xiàng)功能,其可靠性和性能都取決于kubernetes服務(wù)的穩(wěn)定。以性能來(lái)說(shuō),service是kubeproxy組件通過(guò)配置iptables實(shí)現(xiàn)的,當(dāng)iptables規(guī)則較多時(shí)不可避免的會(huì)產(chǎn)生時(shí)延,需要我們針對(duì)性的解決。

2、容器隔離帶來(lái)的監(jiān)控視野問(wèn)題

在 kubernetes 中,如果將 MySQL 制作為 container 運(yùn)行在一個(gè) pod 中,container 會(huì)將 MySQL 進(jìn)程和運(yùn)行環(huán)境隔離在一個(gè)單獨(dú)的 namespace 中。監(jiān)控組件在獲取 MySQL 的一些 metirc 時(shí),可能不得不進(jìn)入與 MySQL 同一個(gè) namespace 中,在部署和設(shè)計(jì)監(jiān)控組件時(shí)需要考慮到這些限制。

3、存儲(chǔ)在 kubernetes 中,支持配置各種不同的存儲(chǔ)。

如果使用本地存儲(chǔ) local persistent volume,則需要綁定 MySQL 在一個(gè)固定的節(jié)點(diǎn),這就完全浪費(fèi)了 kubernetes 靈活調(diào)度的天然優(yōu)勢(shì);而如果使用遠(yuǎn)程共享存儲(chǔ),確實(shí)是將 MySQL 進(jìn)程與其存儲(chǔ)完全解耦,使得 MySQL 進(jìn)程可以在任意節(jié)點(diǎn)調(diào)度,然而考慮到高 I/O 吞吐量的情況,就不是那么美好了。設(shè)計(jì)時(shí)需要考量遠(yuǎn)程存儲(chǔ)是否能夠滿足 MySQL 的帶寬要求。

4、高可用/備份恢復(fù)

kubernetes 提供的 statefulset 控制器只能提供最基本的部署,刪除功能,無(wú)法實(shí)現(xiàn)完善的 MySQL 集群高可用/備份恢復(fù)操作。對(duì)于有狀態(tài)應(yīng)用的部署,仍需要定制開(kāi)發(fā),所以多數(shù)公司提供了定制的 operator 來(lái)完成應(yīng)用容器的管理。比如 etcd operator,MySQL operator,后文將為大家詳述我測(cè)試使用 MySQL operator 的一些記錄。

k8s中的Mysql數(shù)據(jù)庫(kù)持久化存儲(chǔ)

一、配置:

環(huán)境:

CentOS7?

VMware

筆者配置了四臺(tái)虛擬機(jī):

K8S-Master節(jié)點(diǎn): 3GB內(nèi)存? ?2核CPU ? 20GB硬盤空間

K8S-node1節(jié)點(diǎn):? 2GB內(nèi)存? ?2核CPU ? 30GB硬盤空間

K8S-node2節(jié)點(diǎn):? 2GB內(nèi)存? ?2核CPU ? 30GB硬盤空間

鏡像倉(cāng)庫(kù)節(jié)點(diǎn):? ? ? 2GB內(nèi)存? ?2核CPU ? 50GB硬盤空間

二、節(jié)點(diǎn)規(guī)劃:

使用三臺(tái)虛擬機(jī)搭建K8S集群,使用一臺(tái)虛擬機(jī)搭建鏡像倉(cāng)庫(kù)。

每臺(tái)虛擬機(jī)配置兩塊網(wǎng)卡,其中一塊為“NAT模式”,用于拉取鏡像等功能。

另外一塊網(wǎng)卡為“僅主機(jī)模式”,用于集群節(jié)點(diǎn)間的通信。歸劃如下:

K8s-master節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.200

NAT模式: ?192.168.200.130

K8S-node1節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.201

NAT模式: ?192.168.200.131

K8S-node2節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.202

NAT模式: ?192.168.200.132

鏡像倉(cāng)庫(kù)節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.101

NAT模式: ?192.168.200.150

三、版本信息

Linux內(nèi)核版本:

Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org)

(gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) )

#1 SMP Fri Apr 20 16:44:24 UTC 2018

K8s集群版本為1.15.0版本:

四、基于StatefulSet與PV/PVC的MySql持久化存儲(chǔ)實(shí)驗(yàn)

1. 在每個(gè)節(jié)點(diǎn)安裝nfs服務(wù)

在“鏡像倉(cāng)庫(kù)”節(jié)點(diǎn),執(zhí)行以下命令:

yum install -y nfs-common nfs-utils rpcbind

在k8s集群,執(zhí)行以下命令:

yum install -y nfs-utils rpcbind

2. 在“鏡像倉(cāng)庫(kù)”節(jié)點(diǎn)下,配置nfs服務(wù)器

mkdir /nfs_mysql

Chmod?777?/nfs_mysql/

(在測(cè)試環(huán)境中,為了不考慮用戶屬性,暫時(shí)賦予777權(quán)限,但在生產(chǎn)環(huán)境不推薦這樣做)

Chown?nfsnobody?/nfs_mysql/

echo “/nfs_mysql *(rw,no_root_squash,no_all_squash,sync)”? /etc/exports

cat /etc/exports

/nfs_mysql?*(rw,no_root_squash,no_all_squash,sync)

systemctl start rpcbind

systemctl start nfs

3. 測(cè)試nfs服務(wù)是否可用

mkdir /test

showmount -e 10.10.10.101

可見(jiàn)/nfs_mysql *已暴露于共享目錄,接下來(lái)測(cè)試掛載是否可用:

在master節(jié)點(diǎn)下執(zhí)行:

mount -t nfs 10.10.10.101:/nfs_mysql /test/

echo "hello-world"/test/1.txt

在鏡像倉(cāng)庫(kù)節(jié)點(diǎn)下查看1.txt是否存在,若存在則掛載成功:

可見(jiàn)nfs服務(wù)可以正常使用,接下來(lái)刪除test目錄和1.txt

在鏡像倉(cāng)庫(kù)下:

[root@hub nfs_mysql]# rm -f 1.txt

在Master節(jié)點(diǎn)下:

[root@k8s-master ~]# umount /test/

[root@k8s-master ~]# rm -rf /test/

同理,依照以上步驟同時(shí)創(chuàng)建:(提供多個(gè)mysql副本進(jìn)行掛載)

nfs_mysql1

nfs_mysql2

完成后需要重啟nfs服務(wù)

systemctl restart rpcbind

systemctl restart nfs

最終效果:

4. 將nfs封裝成pv

創(chuàng)建mysql_test文件夾,將yaml文件統(tǒng)一保存在此目錄下

mkdir mysql_test

cd mysql_test

vim mysql-pv.yml

mysql-pv.yml配置如下:

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql

server: 10.10.10.101

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv1

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql1

server: 10.10.10.101

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv2

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql2

server: 10.10.10.101

注意:

在k8s集群15版本中recycle回收策略已被刪除,只能用retain策略或者Delete策略。這里我們使用 persistentVolumeReclaimPolicy: Retain

執(zhí)行命令:

kubectl create -f mysql-pv.yml

kubectl get pv

如圖所示,即為Pv創(chuàng)建成功。

5. 部署MySQL,在mysql_test目錄下編寫(xiě)mysql.yml,配置文件如下

apiVersion: v1

kind: Service

metadata:

name: mysql

labels:

app: mysql

spec:

ports:

- port: 3306

name: mysql

clusterIP: None

selector:

app: mysql

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

name: mysql

spec:

selector:

matchLabels:

app: mysql

serviceName: "mysql"

replicas: 3

template:

metadata:

labels:

app: mysql

spec:

containers:

- name: mysql

image: mysql:5.6

env:

- name: MYSQL_ROOT_PASSWORD

value: password

ports:

- containerPort: 3306

name: mysql

volumeMounts:

- name: mysql-persistent-storage

mountPath: /var/lib/mysql

volumeClaimTemplates:

- metadata:

name: mysql-persistent-storage

spec:

accessModes: ["ReadWriteOnce"]

storageClassName: "nfs"

resources:

requests:

storage: 1Gi ?

執(zhí)行以下命令,部署mysql服務(wù):

kubectl create -f mysql.yml

如圖可知,mysql按StatefulSet依次創(chuàng)建了mysql-0 mysql-1 mysql-2

查看各個(gè)Pod部在哪個(gè)節(jié)點(diǎn):

6. 通過(guò)創(chuàng)建臨時(shí)容器,使用MySQL客戶端發(fā)送測(cè)試請(qǐng)求給MySQL master節(jié)點(diǎn)

注意:

主機(jī)名為mysql-0.mysql;跨命名空間的話,主機(jī)名請(qǐng)使用mysql-0.mysql. [NAMESPACE_NAME].如果沒(méi)有指定命名空間,默認(rèn)為default,即 mysql-0.mysql. default。

這里筆者打算關(guān)閉node2節(jié)點(diǎn)來(lái)模擬node2宕機(jī),來(lái)測(cè)試是否實(shí)現(xiàn)數(shù)據(jù)的持久化存儲(chǔ),

所以我們向node2上的mysql1寫(xiě)入數(shù)據(jù)。

執(zhí)行以下命令,訪問(wèn)mysql1:

kubectl run mysql-client --image=mysql:5.6 -it --rm --restart=Never -- mysql -h mysql-1.mysql.default -p?password

創(chuàng)建數(shù)據(jù)庫(kù)demo,并向messages表中寫(xiě)入hello-world

CREATE DATABASE demo;?

CREATE TABLE demo.messages (message VARCHAR(250));?

INSERT INTO demo.messages VALUES ('hello-world');

如圖所示

接下來(lái)我們來(lái)關(guān)閉k8s-node2虛擬機(jī),模擬宕機(jī)

查看nodes的運(yùn)行狀態(tài),可知node2的狀態(tài)已轉(zhuǎn)變?yōu)镹otReady

一段時(shí)間后,k8s將Pod MySql -1遷移到節(jié)點(diǎn)k8s-node1

由于時(shí)間過(guò)長(zhǎng),筆者把三個(gè)Pod都刪除重啟后,驗(yàn)證數(shù)據(jù):

MySQL服務(wù)恢復(fù),數(shù)據(jù)完好無(wú)損!


標(biāo)題名稱:k8s怎么看mysql k8s怎么看ip
分享URL:http://weahome.cn/article/ddspije.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部