日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

k8s中使用MySQL共享存储_Kubernetes创建挂载共享存储的容器

發布時間:2023/12/19 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s中使用MySQL共享存储_Kubernetes创建挂载共享存储的容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一次的Mysql容器中,已經使用過了配置宿主機目錄掛載的方式,這樣雖然方便但是不夠安全;一般都是把數據存儲在遠程服務器上如:NFS,GlusterFS,ceph等;一般目前主流的還是使用ceph、GlusterFS;

本次實驗使用最簡單的方式NFS來配置一個通過掛載共享存儲的nginx容器;

兩臺機器:

kubernetes: ?10.0.10.135 ?[Centos7.2]

nfs: 10.0.10.31 ? ?[Centos6.5的機器]

由于kubernetes還是之前的實驗機器,所以就直接弄好NFS服務器先;

nfs服務器操作:

yum?install?rpcbind?nfs-utils?-y

mkdir?-p?/data/www-data

添加共享目錄配置:

cat?>/etc/exports<

/data/www-data??10.0.10.0/24(rw,sync)

EOF

添加到開機啟動:

chkconfig?rpcbind?on

chkconfig?nfs?on

service?nfs?start

service?rpcbind?start

檢查一下配置:

[root@nfs?~]#?exportfs

/data/www-data??10.0.10.0/24

再回到kubernetess機器上要安裝一個包:

yum?install?nfs-utils?-y

完成后就可以用命令檢查nfs目享的目錄了;

[root@node5?~]#?showmount?-e?10.0.10.31

Export?list?for?10.0.10.31:

/data/www-data????10.0.10.0/24

嘗試掛載一下;

[root@node5?~]#?mount?10.0.10.31:/data/www-data?/mnt

[root@node5?~]#?ls?/mnt

css??fonts??img??index.html??js

因為事先準備了一些文件,所以就可以看到效果,已經成功掛載過來了說明主機可以掛載;

創建一個rc,并定義兩個容器數量,配置文件如下:

cat?>nginx_pod_volume_nfs.yaml<

apiVersion:?v1

kind:?ReplicationController

metadata:

name:?nginx

spec:

replicas:?2

selector:

app:?web01

template:

metadata:

name:?nginx

labels:

app:?web01

spec:

containers:

-?name:?nginx

image:?reg.docker.tb/harbor/nginx

ports:

-?containerPort:?80

volumeMounts:

-?mountPath:?/usr/share/nginx/html

readOnly:?false

name:?nginx-data

volumes:

-?name:?nginx-data

nfs:

server:?10.0.10.31

path:?"/data/www-data"

EOF

創建容器:

[root@node5?test_418]#?kubectl?create?-f?nginx_pod_volume_nfs.yaml

replicationcontroller?"nginx"?created

檢查一下服務是否正在運行:

[root@node5?test_418]#?kubectl?get?pods

NAME??????????READY?????STATUS????RESTARTS???AGE

nginx-64zrd???1/1???????Running???0??????????15s

nginx-f0z39???1/1???????Running???0??????????15s

[root@node5?test_418]#?kubectl?get?rc

NAME??????DESIRED???CURRENT???READY?????AGE

nginx?????2?????????2?????????1?????????8s

此時已經成功運行了兩個容器了,但是無法外部訪問,這里還要再添加一個service;

創建一個Service,負責對外提供負載;

cat?>nginx_service.yaml<

apiVersion:?v1

kind:?Service

metadata:

name:?nginx-service

spec:

externalIPs:

-?10.0.10.135

ports:

-?port:?8000

targetPort:?80

protocol:?TCP

selector:

app:?web01

EOF

檢查一下service是否成功運行:

[root@node5?test_418]#?kubectl?get?svc

NAME????????????CLUSTER-IP???????EXTERNAL-IP???PORT(S)????AGE

kubernetes??????10.254.0.1???????????????443/TCP????17d

my-mysql????????10.254.93.211????10.0.10.135???3306/TCP???7d

nginx-service???10.254.155.182???10.0.10.135???8000/TCP???4s

打開瀏覽器,訪問一下:

http://10.0.10.135:8000/

此處是一個集群哦!由兩個容器提供,哪怕刪除其中一個都可以訪問;只是因為配置文件中配置了復制份數為2,所以刪除任意一個又會很快創建出一個來,最重要的是不用你管理它自動就加入到些集群中;

注:其實這個方式跟本地掛載的方式差不多,只是把遠程的目錄掛載到Kubernetes主機上再掛載到容器里,這個在實驗環境中發現:

[root@node5?test_418]#?mount|grep?"10.0.10.31"

10.0.10.31:/data/www-data?on?/var/lib/kubelet/pods/65f7cd9e-23ec-11e7-b0e2-000c29d4cebd/volumes/kubernetes.io~nfs/nginx-data?type?nfs4?(rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.0.10.135,local_lock=none,addr=10.0.10.31)

10.0.10.31:/data/www-data?on?/var/lib/kubelet/pods/65f7db49-23ec-11e7-b0e2-000c29d4cebd/volumes/kubernetes.io~nfs/nginx-data?type?nfs4?(rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.0.10.135,local_lock=none,addr=10.0.10.31)

很明顯看到兩個Pod容器都掛載了一相同的目錄,而此目錄就是掛載遠程NFS服務器的目錄;

總結

以上是生活随笔為你收集整理的k8s中使用MySQL共享存储_Kubernetes创建挂载共享存储的容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。