国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Kubernetes]5. k8s集群StatefulSet詳解,以及數(shù)據(jù)持久化(SC PV PVC)

這篇具有很好參考價值的文章主要介紹了[Kubernetes]5. k8s集群StatefulSet詳解,以及數(shù)據(jù)持久化(SC PV PVC)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前面通過deployment結(jié)合service來部署無狀態(tài)的應(yīng)用,下面來講解通過satefulSet結(jié)合service來部署有狀態(tài)的應(yīng)用

一.StatefulSet詳解

1.有狀態(tài)和無狀態(tài)區(qū)別

  • 無狀態(tài): 無狀態(tài)(stateless)、牲畜(cattle)、無名(nameless)、可丟棄(disposable)
  • 有狀態(tài): 有狀態(tài)(stateful)、寵物(pet)、具有名(haviing name)、不可丟棄(non-disposable)
  • StatefulSet是用來管理有狀態(tài)的應(yīng)用,例如數(shù)據(jù)庫
  • 前面部署的應(yīng)用,都是不需要存儲數(shù)據(jù),不需要記住狀態(tài)的,可以隨意擴(kuò)充副本,每個副本都是一樣的,可替代的,這時候可以通過deployment結(jié)合service來部署
  • 而像數(shù)據(jù)庫、Redis這類有狀態(tài)的,并且有數(shù)據(jù)的應(yīng)用,則不能隨意擴(kuò)充副本,這時候就需要通過statefulSet結(jié)合service來部署
  • StatefulSet 會固定每個 Pod 的名字

2.statefulset的組成

  • headless service 用于定義網(wǎng)絡(luò)標(biāo)識(DNS
  • StatefulSet 控制器,用于定義具體應(yīng)用
  • volumeClaimTemplate 存儲卷申請模板,用于創(chuàng)建PV,保證數(shù)據(jù)庫的持久化操作

下面就來通過statefulSet結(jié)合service部署一個Mongodb

3.創(chuàng)建 Service部署StatefulSet類型的Mongodb

定義一個mongo.yaml,這個yaml和deployment.yaml類似,如下:

  • 下面yaml中的?--- 表示:把多個配置文件放在一個yaml中,下面就是把kind為StatefulSet類型的mongo.yaml和service.yaml放在同一個文件中,當(dāng)然也可以拆分開來
apiVersion: apps/v1
#類型statefulSet
kind: StatefulSet
metadata:
  #部署的名字
  name: mongodb
spec:
  serviceName: mongodb #必須設(shè)置,和下面的name保持一致
  #創(chuàng)建Pod的副本數(shù)
  replicas: 2
  #定義標(biāo)簽選擇器:定義Deployment如何找到要管理的Pod,與template的label(標(biāo)簽)對應(yīng)
  selector:
    matchLabels:
      app: mongodb #需要和下面的labels統(tǒng)一,進(jìn)行關(guān)聯(lián)
  #定義 Pod 相關(guān)數(shù)據(jù)
  template:
    metadata:
      labels:
        app: mongodb 
    #指定該資源的內(nèi)容
    spec:
      # 定義容器,可以多個
      containers:
        - name: mongo # 容器名字
          image: mongo # 鏡像
          # [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
          imagePullPolicy: IfNotPresent
---
apiVersion: v1
#類型Service
kind: Service
metadata:
  #部署的服務(wù)名字,這個可以隨意
  name: mongodb
spec:
 selector:
      app: mongodb #需要mongdb.yaml中,也就是上面的pod中的template中定義的metadata.labels.app名稱統(tǒng)一,這樣mongodb和service才能相互找到
 type: ClusterIP  #默認(rèn)類型,自動分配一個僅Cluster內(nèi)部可以訪問的虛擬IP,當(dāng)外部訪問項目時,自動分配一個虛擬的pod ip,達(dá)到負(fù)載均衡操作,下面詳細(xì)講解
 #HeadLess: 不分配IP地址
 clusterIP: None
 ports:
    - port: 27017 #本 Service 的端口
      targetPort: 27017 # 容器端口

?拆分開來的文件如下:

mongo.yaml

apiVersion: apps/v1
#類型statefulSet
kind: StatefulSet
metadata:
  #部署的名字
  name: mongodb
spec:
  serviceName: mongodb #必須設(shè)置,和下面的name保持一致
  #創(chuàng)建Pod的副本數(shù)
  replicas: 2
  #定義標(biāo)簽選擇器:定義Deployment如何找到要管理的Pod,與template的label(標(biāo)簽)對應(yīng)
  selector:
    matchLabels:
      app: mongodb #需要和下面的labels統(tǒng)一,進(jìn)行關(guān)聯(lián)
  #定義 Pod 相關(guān)數(shù)據(jù)
  template:
    metadata:
      labels:
        app: mongodb 
    #指定該資源的內(nèi)容
    spec:
      # 定義容器,可以多個
      containers:
        - name: mongo # 容器名字
          image: mongo # 鏡像
          # [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
          imagePullPolicy: IfNotPresent

service.yaml

apiVersion: v1
#類型Service
kind: Service
metadata:
  #部署的服務(wù)名字,這個可以隨意
  name: mongodb
spec:
 selector:
      app: mongodb #需要mongdb.yaml中,也就是上面的pod中的template中定義的metadata.labels.app名稱統(tǒng)一,這樣mongodb和service才能相互找到
 type: ClusterIP  #默認(rèn)類型,自動分配一個僅Cluster內(nèi)部可以訪問的虛擬IP,當(dāng)外部訪問項目時,自動分配一個虛擬的pod ip,達(dá)到負(fù)載均衡操作,下面詳細(xì)講解
 #HeadLess: 不分配IP地址
 clusterIP: None
 ports:
    - port: 27017 # 本 Service 的端口
      targetPort: 27017 # 容器端口

mongo.yaml和deployment.yaml的區(qū)別

  • kind不同:deployment.yaml的kind為Deployment,mongo.yaml的kind為StatefulSet
  • mongo.yaml的spec的serverName必須配置,必須和service名字統(tǒng)一起來,這樣才能關(guān)聯(lián)
  • mongo.yaml的service.yaml的type必須是ClusterIP(集群內(nèi)部訪問),訪問的時候是沒有IP地址的,故需設(shè)置ClusterIP:none.當(dāng)然,type類型也可以是NodePort,這樣就可以在外部進(jìn)行端口映射訪問操作

4.部署mongo.yaml

(1).先刪除其他無用的配置

該操作可以執(zhí)行,也可以不執(zhí)行

[Kubernetes]5. k8s集群StatefulSet詳解,以及數(shù)據(jù)持久化(SC PV PVC),Kubernetes,# mongodb,數(shù)據(jù)庫,kubernetes,容器,云原生,PV PVC SC,k8s數(shù)據(jù)持久化

(2).創(chuàng)建mongo.yaml?

vi .mongo.yaml,然后把上面的配置復(fù)制進(jìn)入即可文章來源地址http://www.zghlxwxcb.cn/news/detail-788593.html

[root@node1 ~]# cat  mongo.yaml 
apiVersion: apps/v1
#類型statefulSet
kind: StatefulSet
metadata:
  #部署的名字
  name: mongodb
spec:
  serviceName: mongodb #必須設(shè)置,和下面的name保持一致
  #創(chuàng)建Pod的副本數(shù)
  replicas: 2
  #定義標(biāo)簽選擇器:定義Deployment如何找到要管理的Pod,與template的label(標(biāo)簽)對應(yīng)
  selector:
    matchLabels:
      app: mongodb #需要和下面的labels統(tǒng)一,進(jìn)行關(guān)聯(lián)
  #定義 Pod 相關(guān)數(shù)據(jù)
  template:
    metadata:
      labels:
        app: mongodb 
    #指定該資源的內(nèi)容
    spec:
      # 定義容器,可以多個
      containers:
        - name: mongo # 容器名字
          image: mongo # 鏡像
          # [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
          imagePullPolicy: IfNotPresent
---
apiVersion: v1
#類型Service
kind: Service
metadata

到了這里,關(guān)于[Kubernetes]5. k8s集群StatefulSet詳解,以及數(shù)據(jù)持久化(SC PV PVC)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • K8s(Kubernetes)學(xué)習(xí)(二):k8s集群搭建

    K8s(Kubernetes)學(xué)習(xí)(二):k8s集群搭建

    minikube 只是一個 K8S 集群模擬器,只有一個節(jié)點的集群,只為測試用,master 和 worker 都在一起。 裸機(jī)安裝 至少需要兩臺機(jī)器(主節(jié)點、工作節(jié)點個一臺),需要自己安裝 Kubernetes 組件,配置會稍微麻煩點。 缺點:配置麻煩,缺少生態(tài)支持,例如負(fù)載均衡器、云存儲。 直接用

    2024年02月09日
    瀏覽(37)
  • Kubernetes(K8S)集群部署

    Kubernetes(K8S)集群部署

    目錄 一、創(chuàng)建3臺虛擬機(jī) 二、為每臺虛擬機(jī)安裝Docker 三、安裝kubelet 3.1 安裝要求 3.2 為每臺服務(wù)器完成前置設(shè)置 3.3 為每臺服務(wù)器安裝kubelet、kubeadm、kubectl 四、使用kubeadm引導(dǎo)集群 4.1 master服務(wù)器 4.2 node1、node2服務(wù)器 4.3 初始化主節(jié)點 4.4 work節(jié)點加入集群 五、token過期怎么辦?

    2024年02月07日
    瀏覽(134)
  • Kubernetes(k8s)集群安裝部署

    Kubernetes(k8s)集群安裝部署

    名稱 IP 系統(tǒng) 配置 主控節(jié)點 192.168.202.101 CentOS 7.9.2009 2核4G 工作節(jié)點1 192.168.202.102 CentOS 7.9.2009 2核4G 工作節(jié)點2 192.168.202.103 CentOS 7.9.2009 2核4G 2.1 升級操作系統(tǒng)內(nèi)核 導(dǎo)入elrepo gpg key 安裝elrepo YUM源倉庫 安裝kernel-ml版本,ml為長期穩(wěn)定版本,lt為長期維護(hù)版本 設(shè)置grub2默認(rèn)引導(dǎo)為0 重

    2024年02月10日
    瀏覽(97)
  • yum部署kubernetes(k8s)集群、k8s常用資源管理

    目錄 一、環(huán)境搭建 1、準(zhǔn)備環(huán)境 1)計算機(jī)說明,建議系統(tǒng)版本7.4或者7.6 2)修改所有主機(jī)的計算機(jī)名設(shè)置host文件 ?2、安裝master節(jié)點 1)安裝etcd配置etcd 2)安裝k8s-master節(jié)點 3)配置apiserver 4)配置controller和scheduler 5)啟動k8s服務(wù) 3、安裝k8s-master上的node 1)安裝node 2)配置kube

    2024年02月13日
    瀏覽(35)
  • Containerd+Kubernetes搭建k8s集群

    Containerd+Kubernetes搭建k8s集群

    視頻教程地址:https://space.bilibili.com/3461573834180825/channel/seriesdetail?sid=3316691 之前寫了一篇基于docker安裝kubernetes的文章,這篇文檔我們來使用containerd來安裝kubernetes,相較于docker,containerd運(yùn)行容器的時候效率更高,并且可以兼容docker鏡像。基于docker安裝kubernetes的文章地址:ht

    2024年02月07日
    瀏覽(26)
  • K8S:Rancher管理 Kubernetes 集群

    K8S:Rancher管理 Kubernetes 集群

    Rancher 是一個開源的企業(yè)級多集群 Kubernetes 管理平臺,實現(xiàn)了 Kubernetes 集群在混合云+本地數(shù)據(jù)中心的集中部署與管理, 以確保集群的安全性,加速企業(yè)數(shù)字化轉(zhuǎn)型。超過 40000 家企業(yè)每天使用 Rancher 快速創(chuàng)新。 官網(wǎng):https://docs.rancher.cn/ Rancher 和 k8s 都是用來作為容器的調(diào)度與

    2024年02月07日
    瀏覽(27)
  • Kubernetes(k8s)集群部署----->超詳細(xì)

    Kubernetes(k8s)集群部署----->超詳細(xì)

    ??The Begin??點點關(guān)注,收藏不迷路?? Kubernetes(簡稱k8s)是一個開源的容器編排平臺,可以幫助開發(fā)人員和運(yùn)維團(tuán)隊更輕松地管理容器化應(yīng)用程序。本文將詳細(xì)介紹如何進(jìn)行k8s集群的部署,以幫助讀者快速搭建一個高可用、可伸縮的k8s集群。 1、操作系統(tǒng):至少三臺物理機(jī)或

    2024年02月05日
    瀏覽(20)
  • kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes官網(wǎng) :https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl GitHub :https://github.com/kubernetes/kubeadm 本文 :使用kubeadm搭建一個3臺機(jī)器組成的k8s集群,1臺master節(jié)點,2臺worker節(jié)點。 由于k8s安裝較麻煩,為防止出現(xiàn)其他異常,特此

    2024年04月09日
    瀏覽(22)
  • Kubernetes(k8s)上搭建nacos集群

    Kubernetes(k8s)上搭建nacos集群

    你需要準(zhǔn)備一個Kubernetes集群,如圖我的集群已經(jīng)準(zhǔn)備完畢: nacos可以將配置文件存儲到數(shù)據(jù)庫當(dāng)中,所以我們要先準(zhǔn)備一個擁有nacos數(shù)據(jù)表結(jié)構(gòu)的數(shù)據(jù)庫,這樣的數(shù)據(jù)庫鏡像我已經(jīng)準(zhǔn)備好了,當(dāng)然你也可以自己制作這個鏡像: 我之前寫過一篇Kubernetes上安裝數(shù)據(jù)庫的文章:h

    2024年02月03日
    瀏覽(35)
  • 【k8s】:如何進(jìn)行 Kubernetes 集群健康檢查?

    【k8s】:如何進(jìn)行 Kubernetes 集群健康檢查?

    ??The Begin??點點關(guān)注,收藏不迷路?? 在使用 Kubernetes(k8s)部署應(yīng)用程序時,保證集群的健康狀態(tài)至關(guān)重要。通過定期的健康檢查,可以及時發(fā)現(xiàn)并解決可能導(dǎo)致應(yīng)用程序中斷或故障的問題,確保集群的穩(wěn)定性和可靠性。 將列出所有節(jié)點的狀態(tài),包括節(jié)點的名稱、狀態(tài)、版

    2024年04月16日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包