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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

k8s部署nfs-client-provisioner完整实践版(亲测有效)

發(fā)布時(shí)間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s部署nfs-client-provisioner完整实践版(亲测有效) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編寫rbac和storageclass資源清單

nfs-rbac.yaml

  • rbac鑒權(quán)
  • 設(shè)置nfs server
  • 設(shè)置nfs客戶端與server端數(shù)據(jù)同步
    • mkdir -p /home/nfsmount && mount -t nfs 192.168.116.101:/nfs/data /home/nfsmount
--- apiVersion: v1 kind: ServiceAccount metadata:name: nfs-provisioner --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:name: nfs-provisioner-runner rules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["watch", "create", "update", "patch"]- apiGroups: [""]resources: ["services", "endpoints"]verbs: ["get","create","list", "watch","update"]- apiGroups: ["extensions"]resources: ["podsecuritypolicies"]resourceNames: ["nfs-provisioner"]verbs: ["use"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata:name: run-nfs-provisioner subjects:- kind: ServiceAccountname: nfs-provisionernamespace: default roleRef:kind: ClusterRolename: nfs-provisioner-runnerapiGroup: rbac.authorization.k8s.io --- #vi nfs-deployment.yaml;創(chuàng)建nfs-client的授權(quán) kind: Deployment apiVersion: apps/v1 metadata:name: nfs-client-provisioner spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccount: nfs-provisionercontainers:- name: nfs-client-provisionerimage: 192.168.145.28:1603/kubesphere/nfs-client-provisioner:v3.1.0-k8s1.11volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAME #供應(yīng)者的名字value: storage.pri/nfs #名字雖然可以隨便起,以后引用要一致- name: NFS_SERVERvalue: 192.168.116.101- name: NFS_PATHvalue: /nfs/datavolumes:- name: nfs-client-rootnfs:server: 192.168.116.101path: /nfs/data

storageclass-nfs.yaml

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: storage-nfs provisioner: storage.pri/nfs reclaimPolicy: Delete allowVolumeExpansion: True #允許pvc創(chuàng)建后擴(kuò)容

編寫部署腳本

  • 部署nfs-provisioner
  • 設(shè)置為默認(rèn)storageclass
    [root@m-1 kubesphere-install]# cat start.sh
sudo kubectl apply -f nfs-rbac.yaml -f storageclass-nfs.yaml sudo kubectl patch storageclass storage-nfs -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

測(cè)試

如下部署mysql有狀態(tài)服務(wù)中的部分就會(huì)使用nfs動(dòng)態(tài)供應(yīng)自動(dòng)創(chuàng)建pv:

volumeClaimTemplates:- metadata:name: mysql-dataspec:accessModes: ["ReadWriteOnce"]resources:requests:storage: 10Gi

mysql-sts:

apiVersion: apps/v1 kind: StatefulSet metadata:name: mysqlnamespace: dmgeo-lib spec:selector:matchLabels:app: mysqlserviceName: mysqlreplicas: 3template:metadata:labels:app: mysqlspec:initContainers:- name: init-mysqlimage: 192.168.145.28:1603/lego/mysql/mysql:5.7command:- bash- "-c"- |set -ex# Generate mysql server-id from pod ordinal index.[[ `hostname` =~ -([0-9]+)$ ]] || exit 1ordinal=${BASH_REMATCH[1]}echo [mysqld] > /mnt/conf.d/server-id.cnf# Add an offset to avoid reserved server-id=0 value.echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf# Copy appropriate conf.d files from config-map to emptyDir.if [[ $ordinal -eq 0 ]]; thencp /mnt/config-map/primary.cnf /mnt/conf.d/elsecp /mnt/config-map/replica.cnf /mnt/conf.d/fivolumeMounts:- name: mysql-confmountPath: /mnt/conf.d- name: mysql-configmapmountPath: /mnt/config-map- name: clone-mysqlimage: 192.168.145.28:1603/lego/mysql/twoeo/gcr.io-google-samples-xtrabackup:latestcommand:- bash- "-c"- |set -ex# Skip the clone if data already exists.[[ -d /var/lib/mysql/mysql ]] && exit 0# Skip the clone on primary (ordinal index 0).[[ `hostname` =~ -([0-9]+)$ ]] || exit 1ordinal=${BASH_REMATCH[1]}[[ $ordinal -eq 0 ]] && exit 0# Clone data from previous peer.ncat --recv-only mysql-$(($ordinal-1)).mysql 3307 | xbstream -x -C /var/lib/mysql# Prepare the backup.xtrabackup --prepare --target-dir=/var/lib/mysqlvolumeMounts:- name: mysql-datamountPath: /var/lib/mysqlsubPath: mysql- name: mysql-confmountPath: /etc/mysql/conf.dcontainers:- name: mysqlimage: 192.168.145.28:1603/lego/mysql/mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: 123456#- name: MYSQL_ALLOW_EMPTY_PASSWORD# value: "1"ports:- name: mysqlcontainerPort: 3306volumeMounts:- name: mysql-datamountPath: /var/lib/mysqlsubPath: mysql- name: mysql-confmountPath: /etc/mysql/conf.dresources:requests:cpu: 500mmemory: 1GilivenessProbe:exec:command: ["mysqladmin", "ping"]initialDelaySeconds: 30periodSeconds: 10timeoutSeconds: 5readinessProbe:exec:# Check we can execute queries over TCP (skip-networking is off).command: ["mysql", "-h", "127.0.0.1", "-e", "SELECT 1"]initialDelaySeconds: 5periodSeconds: 2timeoutSeconds: 1- name: xtrabackupimage: 192.168.145.28:1603/lego/mysql/twoeo/gcr.io-google-samples-xtrabackup:latestports:- name: xtrabackupcontainerPort: 3307command:- bash- "-c"- |set -excd /var/lib/mysql# Determine binlog position of cloned data, if any.if [[ -f xtrabackup_slave_info && "x$(<xtrabackup_slave_info)" != "x" ]]; then# XtraBackup already generated a partial "CHANGE MASTER TO" query# because we're cloning from an existing replica. (Need to remove the tailing semicolon!)cat xtrabackup_slave_info | sed -E 's/;$//g' > change_master_to.sql.in# Ignore xtrabackup_binlog_info in this case (it's useless).rm -f xtrabackup_slave_info xtrabackup_binlog_infoelif [[ -f xtrabackup_binlog_info ]]; then# We're cloning directly from primary. Parse binlog position.[[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1rm -f xtrabackup_binlog_info xtrabackup_slave_infoecho "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.infi# Check if we need to complete a clone by starting replication.if [[ -f change_master_to.sql.in ]]; thenecho "Waiting for mysqld to be ready (accepting connections)"until mysql -h 127.0.0.1 -e "SELECT 1"; do sleep 1; doneecho "Initializing replication from clone position"mysql -h 127.0.0.1 \-e "$(<change_master_to.sql.in), \MASTER_HOST='mysql-0.mysql', \MASTER_USER='root', \MASTER_PASSWORD='', \MASTER_CONNECT_RETRY=10; \START SLAVE;" || exit 1# In case of container restart, attempt this at-most-once.mv change_master_to.sql.in change_master_to.sql.origfi# Start a server to send backups when requested by peers.exec ncat --listen --keep-open --send-only --max-conns=1 3307 -c \"xtrabackup --backup --slave-info --stream=xbstream --host=127.0.0.1 --user=root"volumeMounts:- name: mysql-datamountPath: /var/lib/mysqlsubPath: mysql- name: mysql-confmountPath: /etc/mysql/conf.dresources:requests:cpu: 100mmemory: 100Mivolumes:- name: mysql-confemptyDir: {}- name: mysql-configmapconfigMap:name: mysql-configmapvolumeClaimTemplates:- metadata:name: mysql-dataspec:accessModes: ["ReadWriteOnce"]resources:requests:storage: 10Gi 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的k8s部署nfs-client-provisioner完整实践版(亲测有效)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 蜜桃tv一区二区三区 | 国产一卡二卡三卡 | 欧美亚洲综合视频 | 色网站免费在线观看 | 欧美一区二区三区粗大 | 免费成人在线观看视频 | 精品国产网 | 在线观看av片 | 丰满放荡岳乱妇91ww | 91久久精品一区二区 | 成年人免费网站 | 在线观看 亚洲 | 国产又粗又黄又爽又硬的视频 | 日韩中文字幕在线不卡 | 最新中文字幕在线观看视频 | 久久久香蕉视频 | 手机av观看| 99999av | 99热只有| 91深夜视频 | 男女爽爽视频 | 色婷婷婷婷| 久久国产精品99久久人人澡 | 香蕉日日 | 午夜av一区二区三区 | 国产综合精品久久久久成人影 | 国产一级视频 | 操操操网 | 亚洲伦理在线播放 | 免费一区二区三区四区 | 欧美精品乱码久久久久久 | 长篇h版少妇沉沦交换 | 69视频在线观看 | 中文字幕一区二区免费 | 国产精品电影在线观看 | 日韩综合中文字幕 | 久草操 | 亚洲欧美视频二区 | 亚洲精品乱码久久 | 欧美日韩一区二区综合 | 爽爽视频在线观看 | 国产传媒视频 | 青青草社区视频 | 欧美三级视频在线观看 | 91在线观看免费高清 | 欧美精品一二区 | 成人做受视频试看60秒 | 一区二区三区视频在线观看免费 | 中文字幕第12页 | 久久草网站| 九九热8 | 国产精品无码久久久久久电影 | 国产精品一区在线 | 欧美 日韩 国产 成人 在线观看 | 日韩蜜桃视频 | 亚洲免费专区 | www婷婷| 朴麦妮原版视频高清资源 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 国产美女www爽爽爽 www.国产毛片 | 亚洲人妻一区二区 | 一极毛片 | 亚洲黄色免费视频 | 久久久精品在线 | 九九黄色 | 中文字幕在线观看一区二区 | 国产精品午夜久久 | 一级黄色片在线观看 | 蜜桃视频在线观看污 | 国产 欧美 精品 | 亚洲av综合色区无码另类小说 | 久久精品视频一区二区三区 | 顶级毛茸茸aaahd极品 | 国产一伦一伦一伦 | 视频一区在线播放 | 欧美99热| 999精品免费视频 | 91黄瓜视频 | 欧美色乱| 成人自拍一区 | 亚洲精品高清视频在线观看 | 最新国产拍偷乱偷精品 | 欧美青青草| 欧美日韩中文 | 黄色大全免费观看 | 樱花影院最新免费观看攻略 | 日韩v在线 | 国产男人天堂 | av一区二区在线播放 | 中国xxxx性xxxx产国 | 亚洲最大av | 男插女在线观看 | 午夜影音 | 国产伦精品一区二区三区高清版禁 | 日本三级小视频 | 又欲又污又肉又黄短文 | 免费国产成人 | 四川话毛片少妇免费看 | 91视频黄版|