亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Kubernetes(k8s)常用yaml配置和注釋方式

 更新時間:2025年05月29日 14:42:38   作者:禿了也弱了。  
這篇文章主要介紹了Kubernetes(k8s)常用yaml配置和注釋方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、pod

1、pod完整定義

# yaml格式的pod定義文件完整內(nèi)容:
apiVersion: v1       #必選,api版本號,例如v1
kind: Pod           #必選,Pod
metadata:           #必選,元數(shù)據(jù)
  name: string       #必選,Pod名稱
  namespace: string    #Pod所屬的命名空間,默認在default的namespace
  labels:              # 自定義標簽
    name: string     #自定義標簽名字
  annotations:        #自定義注釋列表
    name: string
spec:         #必選,Pod中容器的詳細定義(期望)
  containers:      #必選,Pod中容器列表
  - name: string     #必選,容器名稱
    image: string    #必選,容器的鏡像名稱
    imagePullPolicy: [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
    command: [string]    #容器的啟動命令列表,如不指定,使用打包時使用的啟動命令
    args: [string]     #容器的啟動命令參數(shù)列表
    workingDir: string     #容器的工作目錄
    volumeMounts:    #掛載到容器內(nèi)部的存儲卷配置
    - name: string     #引用pod定義的共享存儲卷的名稱,需用volumes[]部分定義的的卷名
      mountPath: string    #存儲卷在容器內(nèi)mount的絕對路徑,應(yīng)少于512字符
      readOnly: boolean    #是否為只讀模式
    ports:       #需要暴露的端口庫號列表
    - name: string     #端口號名稱
      containerPort: int   #容器需要監(jiān)聽的端口號
      hostPort: int    #容器所在主機需要監(jiān)聽的端口號,默認與Container相同
      protocol: string     #端口協(xié)議,支持TCP和UDP,默認TCP
    env:       #容器運行前需設(shè)置的環(huán)境變量列表
    - name: string     #環(huán)境變量名稱
      value: string    #環(huán)境變量的值
    resources:       #資源限制和請求的設(shè)置
      limits:      #資源限制的設(shè)置
        cpu: string    #Cpu的限制,單位為core數(shù),將用于docker run --cpu-shares參數(shù)
        memory: string     #內(nèi)存限制,單位可以為Mib/Gib,將用于docker run --memory參數(shù)
      requests:      #資源請求的設(shè)置
        cpu: string    #Cpu請求,容器啟動的初始可用數(shù)量
        memory: string     #內(nèi)存清求,容器啟動的初始可用數(shù)量
    livenessProbe:     #對Pod內(nèi)個容器健康檢查的設(shè)置,當(dāng)探測無響應(yīng)幾次后將自動重啟該容器,檢查方法有exec、httpGet和tcpSocket,對一個容器只需設(shè)置其中一種方法即可
      exec:      #對Pod容器內(nèi)檢查方式設(shè)置為exec方式
        command: [string]  #exec方式需要制定的命令或腳本
      httpGet:       #對Pod內(nèi)個容器健康檢查方法設(shè)置為HttpGet,需要制定Path、port
        path: string
        port: number
        host: string
        scheme: string
        HttpHeaders:
        - name: string
          value: string
      tcpSocket:     #對Pod內(nèi)個容器健康檢查方式設(shè)置為tcpSocket方式
         port: number
       initialDelaySeconds: 0  #容器啟動完成后首次探測的時間,單位為秒
       timeoutSeconds: 0   #對容器健康檢查探測等待響應(yīng)的超時時間,單位秒,默認1秒
       periodSeconds: 0    #對容器監(jiān)控檢查的定期探測時間設(shè)置,單位秒,默認10秒一次
       successThreshold: 0
       failureThreshold: 0
       securityContext:
         privileged:false
    restartPolicy: [Always | Never | OnFailure] # Pod的重啟策略,Always表示一旦不管以何種方式終止運行,kubelet都將重啟,OnFailure表示只有Pod以非0退出碼退出才重啟,Nerver表示不再重啟該Pod
    nodeSelector: obeject  # 設(shè)置NodeSelector表示將該Pod調(diào)度到包含這個label的node上,以key:value的格式指定
    imagePullSecrets:    #Pull鏡像時使用的secret名稱,以key:secretkey格式指定
    - name: string
    hostNetwork: false     #是否使用主機網(wǎng)絡(luò)模式,默認為false,如果設(shè)置為true,表示使用宿主機網(wǎng)絡(luò)
    volumes:       #在該pod上定義共享存儲卷列表
    - name: string     #共享存儲卷名稱 (volumes類型有很多種)
      emptyDir: {}     #類型為emtyDir的存儲卷,與Pod同生命周期的一個臨時目錄。為空值
      hostPath: string     #類型為hostPath的存儲卷,表示掛載Pod所在宿主機的目錄
        path: string     #Pod所在宿主機的目錄,將被用于同期中mount的目錄
      secret:      #類型為secret的存儲卷,掛載集群與定義的secret對象到容器內(nèi)部
        scretname: string  
        items:     
        - key: string
          path: string
      configMap:     #類型為configMap的存儲卷,掛載預(yù)定義的configMap對象到容器內(nèi)部
        name: string
        items:
        - key: string
          path: string

2、探針

apiVersion: v1
kind: Pod
metadata:
  name: liveness-exce
  namespace: default
spec:
  containers:
  - name: liveness
    image: busybox
    imagePullPolicy: IfNotPresent
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy;sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5                            # pod啟動延遲5秒后探測
      periodSeconds: 5                                          # 每5秒探測1次

    livenessProbe:
      httpGet:                          # 使用httpGet方式
        port: http                      # http協(xié)議,也可以直接寫80端口
        path: /index.html               # 探測家目錄下的index.html
      initialDelaySeconds: 3            # 延遲3秒開始探測
      periodSeconds: 5                  # 每隔5s鐘探測一次

    livenessProbe:
      tcpSocket:                        # 使用tcp連接方式
        port: 80                        # 連接80端口進行探測
      initialDelaySeconds: 3
      periodSeconds: 5
      
    readinessProbe:                     # 這里由liveness換成了readiness
      httpGet:
        port: http
        path: /index.html
      initialDelaySeconds: 3
      periodSeconds: 5

    livenessProbe:
      httpGet:
        port: http
        path: /index.html
      initialDelaySeconds: 1
      periodSeconds: 3
    readinessProbe:
      httpGet:
        port: http
        path: /index.html
      initialDelaySeconds: 5
      periodSeconds: 5

3、post-start、pre-stop

容器啟動前和停止前執(zhí)行的操作:

apiVersion: v1
kind: Pod
metadata:
  name: prestop
  namespace: default
spec:
  containers:
  - name: prestop
    image: nginx:1.15-alpine
    imagePullPolicy: IfNotPresent
    lifecycle:                                       # 生命周期事件
      preStop:                                       # preStop
        exec:
          command: ["/bin/sh","-c","sleep 60000000"]     # 容器終止前sleep 60000000秒
      postStart:
        exec:
          command: ["mkdir","-p","/usr/share/nginx/html/haha"]

二、Controller

1、Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment  # Deployment 的名稱
spec:
  replicas: 3  # 副本數(shù)
  selector:
    matchLabels:
      app: my-app  # 用于選擇 Pod 的標簽,表示deployment和rs控制器控制帶有此標簽的pod
  template:		# pod配置模板
    metadata:
      labels:
        app: my-app  # Pod 的標簽,用于與選擇器匹配
    spec:
      containers:
      - name: my-container  # 容器的名稱
        image: nginx  # 使用的容器鏡像
        ports:
        - containerPort: 80  # 容器內(nèi)部暴露的端口號
          protocol: TCP  # 端口的協(xié)議類型
        resources:  # 容器所需的資源限制和需求
          limits:
            cpu: "0.5"  # CPU 使用上限
            memory: "256Mi"  # 內(nèi)存使用上限
          requests:
            cpu: "0.2"  # CPU 最小需求
            memory: "128Mi"  # 內(nèi)存最小需求
        env:  # 容器的環(huán)境變量
        - name: ENV_VAR1
          value: value1
        - name: ENV_VAR2
          valueFrom:
            secretKeyRef:
              name: my-secret  # 引用的 Secret 對象的名稱
              key: secret-key  # 從 Secret 對象中獲取的鍵名
        volumeMounts:  # 容器的掛載路徑
        - name: data-volume  # 掛載的卷的名稱
          mountPath: /data  # 掛載的路徑
      volumes:  # Pod 的卷
      - name: data-volume  # 卷的名稱
        emptyDir: {}  # 空的卷,生命周期與 Pod 相關(guān)聯(lián)

# 可以添加 metadata.annotations 字段用于存放其他注釋信息
metadata:
  annotations:
    description: This is a sample Deployment configuration file.  # 描述該配置文件的注釋

2、StatefulSet

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: my-statefulset  # StatefulSet 的名稱
spec:
  selector: 
    matchLabels:
      app: my-app  # 匹配標簽,用于選擇要管理的 Pod
  serviceName: my-service  # Headless Service 的名稱
  replicas: 3  # 副本數(shù)
  template:
    metadata:
      labels:
        app: my-app  # Pod 的標簽
    spec:
      containers:
        - name: my-container  # 容器的名稱
          image: nginx  # 容器的鏡像
          ports:
            - containerPort: 80  # 容器監(jiān)聽的端口號
          volumeMounts:
            - name: data-volume  # 掛載卷的名稱
              mountPath: /data  # 掛載到容器中的路徑
  volumeClaimTemplates:
    - metadata:
        name: data-volume  # 持久化存儲卷模板的名稱
      spec:
        accessModes:
          - ReadWriteOnce  # 訪問模式
        resources:
          requests:
            storage: 1Gi  # 存儲容量

StatefulSet 是用于管理有狀態(tài)應(yīng)用程序的控制器,它保證 Pod 的唯一性和穩(wěn)定性,并按照序號進行命名。

在上述示例中,創(chuàng)建了一個包含 3 個副本的 StatefulSet,每個副本都會被命名為 my-statefulset-{0…2}。

StatefulSet 是用于管理有狀態(tài)應(yīng)用程序的控制器,它保證 Pod 的唯一性和穩(wěn)定性,并按照序號進行命名。

在上述示例中,創(chuàng)建了一個包含 3 個副本的 StatefulSet,每個副本都會被命名為 my-statefulset-{0…2}。

3、DaemonSet

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: my-daemonset  # DaemonSet 的名稱
spec:
  selector:
    matchLabels:
      app: my-app  # 匹配標簽,用于選擇要管理的節(jié)點上的 Pod
  template:
    metadata:
      labels:
        app: my-app  # Pod 的標簽
    spec:
      containers:
        - name: my-container  # 容器的名稱
          image: nginx  # 容器的鏡像
          ports:
            - containerPort: 80  # 容器監(jiān)聽的端口號
          volumeMounts:
            - name: data-volume  # 掛載卷的名稱
              mountPath: /data  # 掛載到容器中的路徑
      nodeSelector:
        disktype: ssd  # 節(jié)點的標簽選擇器,用于選擇帶有指定標簽的節(jié)點
  updateStrategy:
    type: RollingUpdate  # 更新策略為滾動更新
    rollingUpdate:
      maxUnavailable: 1  # 在更新期間最多允許一個 Pod 不可用
  volumeClaimTemplates:
    - metadata:
        name: data-volume  # 持久化存儲卷模板的名稱
      spec:
        accessModes:
          - ReadWriteOnce  # 訪問模式
        resources:
          requests:
            storage: 1Gi  # 存儲容量

DaemonSet 是用于在每個節(jié)點上運行一個 Pod 的控制器,它保證每個節(jié)點上都有一個唯一的 Pod 進行運行,并自動適應(yīng)節(jié)點變化。

在上述示例中,創(chuàng)建了一個 DaemonSet,每個節(jié)點上都會運行一個 Pod,該 Pod 將被命名為 my-daemonset-{node-name}。

DaemonSet 還包含了 volumeClaimTemplates 字段,用于定義持久化存儲卷模板。

在上述示例中,使用了一個名為 data-volume 的持久化存儲卷模板,訪問模式為 ReadWriteOnce,存儲容量為 1GB。Pod 將根據(jù)該模板創(chuàng)建一個與之對應(yīng)的持久化存儲卷。

通過使用 DaemonSet 和持久化存儲卷,可以在集群的每個節(jié)點上運行一個 Pod,并確保應(yīng)用程序的數(shù)據(jù)持久化和可靠性存儲。

由于 DaemonSet 會自動適應(yīng)節(jié)點變化,因此在增加或刪除節(jié)點時,應(yīng)用程序的數(shù)據(jù)不會丟失或受影響。

4、Job

apiVersion: batch/v1
kind: Job
metadata:
  name: my-job  # Job 的名稱
spec:
  completions: 1  # 完成的任務(wù)數(shù)
  parallelism: 1  # 并行運行的 Pod 數(shù)量
  template:
    metadata:
      name: my-pod  # Pod 的名稱
    spec:
      restartPolicy: Never  # 不重啟容器
      containers:
        - name: my-container  # 容器的名稱
          image: nginx  # 容器的鏡像
          command: ["echo", "Hello, world!"]  # 容器啟動命令
      volumes:
        - name: data-volume  # 卷的名稱
          emptyDir: {}  # 空的臨時卷
  backoffLimit: 3  # 重試次數(shù)上限

Job 是用于在 Kubernetes 中運行一次性任務(wù)的控制器。

在上述示例中,創(chuàng)建了一個 Job,其中包含一個 Pod,Pod 中運行了一個名為 my-container 的容器,該容器使用 nginx 鏡像,并執(zhí)行了 echo “Hello, world!” 命令。

Job 的配置還包括一些重要的字段,如 completions(完成的任務(wù)數(shù))和 parallelism(并行運行的 Pod 數(shù)量)。completions 字段指定了 Job 完成的任務(wù)數(shù),一旦達到該數(shù)量,Job 就會被標記為成功。parallelism 字段指定了同時運行的 Pod 數(shù)量,可以控制并行執(zhí)行任務(wù)的速度。

另外,還有一些其他常用的字段,例如 restartPolicy(容器的重啟策略),volumes(卷的定義)和 backoffLimit(重試次數(shù)上限)。這些參數(shù)可以根據(jù)業(yè)務(wù)需求進行調(diào)整和配置。

通過使用 Job 控制器,可以在 Kubernetes 中運行一次性任務(wù),并確保任務(wù)的完成和可靠性運行。由于 Job 可以指定任務(wù)數(shù)量和并行度,可以很好地適應(yīng)不同規(guī)模和要求的任務(wù)場景。

5、ConJob

apiVersion: batch/v1beta1  # 使用的 API 版本
kind: CronJob  # CronJob 類型
metadata:
  name: my-cronjob  # CronJob 的名稱
spec:
  schedule: "*/1 * * * *"  # Cron 表達式,用于定義作業(yè)執(zhí)行的時間表
  jobTemplate:  # 作業(yè)模板,指定 CronJob 創(chuàng)建的作業(yè)配置
    spec:
      template:
        metadata:
          name: my-job  # 作業(yè)的名稱
        spec:
          restartPolicy: OnFailure  # 容器的重啟策略
          containers:
            - name: my-container  # 容器的名稱
              image: nginx  # 容器的鏡像
              command: ["echo", "Hello, world!"]  # 容器啟動命令
  successfulJobsHistoryLimit: 5  # 歷史成功作業(yè)保存的數(shù)量上限
  failedJobsHistoryLimit: 5  # 歷史失敗作業(yè)保存的數(shù)量上限

CronJob 是 Kubernetes 中的一種控制器,用于定期運行作業(yè)。在上述示例中,創(chuàng)建了一個 CronJob,其中定義了一個 Cron 表達式 */1 * * * *,表示每分鐘執(zhí)行一次作業(yè)。

CronJob 的配置還包括使用 jobTemplate 指定了創(chuàng)建作業(yè)的模板。在這個模板中,指定了作業(yè)的 Pod 配置,其中包含一個名為 my-container 的容器,使用 nginx 鏡像,并執(zhí)行了 echo “Hello, world!” 命令。

除了基本的配置外,還有一些其他常用的字段。例如,successfulJobsHistoryLimit 和 failedJobsHistoryLimit 字段分別指定歷史成功和失敗作業(yè)保存的數(shù)量上限,可以根據(jù)需求進行調(diào)整。

通過使用 CronJob 控制器,可以定期運行作業(yè),并對作業(yè)的運行情況進行管理和記錄。CronJob 的配置文件中的注釋可以幫助我們理解每個字段的含義和作用,方便后續(xù)管理和維護。

三、Service

1、ClusterIP

當(dāng)服務(wù)的類型為 ClusterIP 時,它會為集群內(nèi)部的其他組件分配一個虛擬 IP 地址,并使用服務(wù)監(jiān)聽端口來接收來自其他組件的請求。這樣,其他 Pod 或服務(wù)就可以通過服務(wù)的虛擬 IP 地址和監(jiān)聽端口與服務(wù)進行通信。

kind: Service
apiVersion: v1
metadata:
  name: my-service
  namespace: app # namespace
spec:
  type: ClusterIP
  #clusterIP: None # None代表是無頭service
  ports:
    - port: 8080  # 集群內(nèi)部的服務(wù)監(jiān)聽端口
      targetPort: 80  # Pod 內(nèi)部的端口
  selector: # 標簽選擇器
    app: my-app  # 指向該標簽的pod
  sessionAffinity: ClientIP # sessionAffinity為Clientip (類似nginx的ip_hash算法,lvs的sh算法)

服務(wù)名稱為 my-service,類型為 ClusterIP,它監(jiān)聽端口 8080,并將請求轉(zhuǎn)發(fā)到 Pod 內(nèi)部的 80 端口。其他組件可以通過訪問 my-service:8080 來與服務(wù)進行通信。

需要注意的是,集群內(nèi)部的服務(wù)監(jiān)聽端口通常是在集群內(nèi)部使用的端口,不直接暴露給外部請求。

如果您需要將服務(wù)公開到集群外部,可以考慮使用其他類型的服務(wù),如 NodePort 或 LoadBalancer。

擴展:

  • ClusterIP根據(jù)是否生成ClusterIP又可分為普通Service和Headless Service。
  • 普通的ClusterIP service是service name解析為cluster ip,然后cluster ip對應(yīng)到后面的pod ip。
  • Headless service是指service name 直接解析為后面的pod ip。實際上Headless service用處不大,dns貌似沒效果需要額外配置

2、NodePort

在NodePort的YAML文件中,ports 下的 port 字段表示服務(wù)在集群內(nèi)部使用的端口號。這是服務(wù)對內(nèi)提供服務(wù)的端口,其他 Pod 可以通過該端口與服務(wù)進行通信。

nodePort 字段表示服務(wù)在節(jié)點上公開的端口號。當(dāng)服務(wù)類型為 NodePort 時,Kubernetes 隨機分配一個未使用的端口號,并將該端口號映射到每個節(jié)點上。這樣,您可以通過節(jié)點的 IP 地址和 nodePort 端口號來訪問服務(wù)。

targetPort 字段是服務(wù)所指向的 Pod 的端口。當(dāng)請求到達 nodePort 監(jiān)聽的端口時,它將被轉(zhuǎn)發(fā)到目標端口(targetPort)上的 Pod 進行處理。

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30000
  selector:
    app: my-app# 指向該標簽的pod

該示例中,服務(wù)名稱為 my-service,通過 NodePort 類型將集群中的應(yīng)用程序暴露到節(jié)點的 30000 端口上。集群內(nèi)部的服務(wù)監(jiān)聽端口為 80,將請求轉(zhuǎn)發(fā)到 Pod 上的 8080 端口。

請注意,NodePort 的端口范圍是 30000-32767,確保選擇一個未被占用的端口號。

3、LoadBalancer

需要部署額外的負載均衡器。

apiVersion: v1
kind: Service
metadata:
  name: my-service  # Service 的名稱
spec:
  selector:
    app: my-app  # 選擇要路由到的 Pod 的標簽
  ports:
  - name: http  # 端口的名稱
    protocol: TCP  # 端口的協(xié)議類型
    port: 80  # Service 暴露的端口號
    targetPort: 8080  # 路由到的 Pod 的端口號
  type: LoadBalancer  # Service 的類型,可以是 ClusterIP、NodePort 或者 LoadBalancer

4、ExternalName

把集群外部的服務(wù)引入到集群內(nèi)部中來,實現(xiàn)了集群內(nèi)部pod和集群外部的服務(wù)進行通信。

ExternalName 類型的服務(wù)適用于外部服務(wù)使用域名的方式,缺點是不能指定端口

還有一點要注意: 集群內(nèi)的Pod會繼承Node上的DNS解析規(guī)則。所以只要Node可以訪問的服務(wù),Pod中也可以訪問到, 這就實現(xiàn)了集群內(nèi)服務(wù)訪問集群外服務(wù)

apiVersion: v1
kind: Service
metadata:
  name: my-externalname
  namespace: default
spec:
  type: ExternalName
  externalName: www.baidu.com                  # 對應(yīng)的外部域名為www.baidu.com

四、Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress  # Ingress 的名稱
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1  # 添加 NGINX Ingress 控制器的注解,用于重寫 URL
spec:
  rules:
  - host: example.com  # 定義要匹配的域名
    http:
      paths:
      - path: /appA  # URL 路徑
        pathType: Prefix  # 路徑匹配類型,可以是 Prefix 或 Exact
        backend:
          service:
            name: appA-service  # 要路由到的 Service 的名稱
            port:
              number: 80  # 路由到的 Service 的端口號
      - path: /appB(/|$)(.*)  # 使用正則表達式匹配 URL 路徑
        pathType: Prefix  # 路徑匹配類型,可以是 Prefix 或 Exact
        backend:
          service:
            name: appB-service  # 要路由到的 Service 的名稱
            port:
              number: 80  # 路由到的 Service 的端口號
              

五、ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap  # ConfigMap 的名稱
data:
  server.conf: |
    # Server 配置文件
    port=8080
    host=localhost
  client.conf: |
    # Client 配置文件
    timeout=5000
    retries=3

需要注意的是,

ConfigMap 的配置文件可以包含多個鍵值對,鍵名和對應(yīng)的值可以是任意字符串類型,例如文件內(nèi)容、環(huán)境變量、命令行參數(shù)等。

在使用 ConfigMap 時,可以將其掛載到 Pod 中的容器內(nèi),從而使容器可以輕松地訪問配置信息。

為了更好地管理和維護 ConfigMap,建議使用有意義的名稱和注釋對其進行命名和描述。

六、Secret

apiVersion: v1
kind: Secret
metadata:
  name: my-secret  # Secret 的名稱
type: Opaque  # Secret 類型(Opaque 表示任意類型)
data:
  username: dXNlcm5hbWU=  # 加密后的用戶名
  password: cGFzc3dvcmQ=  # 加密后的密碼

Secret 的配置文件包含敏感信息,如用戶名、密碼等,需要進行加密處理。在 YAML 文件中,可以將敏感信息以 base64 編碼的方式保存在 data 字段中,以保證安全性。

七、Volume

apiVersion: v1
kind: Pod
metadata:
  name: my-pod  # Pod 的名稱
spec:
  containers:
    - name: my-container  # 容器的名稱
      image: nginx  # 容器的鏡像
      volumeMounts:
        - name: data-volume  # 掛載卷的名稱
          mountPath: /data  # 掛載到容器中的路徑
  volumes:
    - name: data-volume  # 卷的名稱
      emptyDir: {}  # 空目錄卷

Volume 的配置文件可以包含多個卷定義,每個卷可以是不同類型的卷(如 emptyDir、hostPath、persistentVolumeClaim 等)。在上述示例中,使用的是 emptyDir 類型的卷,它會在 Pod 運行時創(chuàng)建一個空目錄,并將其掛載到容器內(nèi)的指定路徑。

訪問模式:

在 Kubernetes 中,訪問模式(Access Modes)是用來定義持久化存儲卷(Persistent Volume)的訪問方式的。下面是 Kubernetes 支持的三種訪問模式:

  • ReadWriteOnce(RWO):該訪問模式表示該存儲卷可以被單個節(jié)點以讀寫方式掛載。這意味著同一時間內(nèi)只能有一個 Pod 能夠掛載并對存儲卷進行讀寫操作。當(dāng)存儲卷被某個節(jié)點上的 Pod 掛載時,它將成為該節(jié)點的專屬卷,在其他節(jié)點上不可見。
  • ReadOnlyMany(ROX):該訪問模式表示該存儲卷可以以只讀方式被多個節(jié)點掛載。多個 Pod 可以共享對存儲卷的只讀訪問權(quán)限,但不能進行寫入操作。
  • ReadWriteMany(RWX):該訪問模式表示該存儲卷可以以讀寫方式被多個節(jié)點掛載。多個 Pod 可以同時掛載并對存儲卷進行讀寫操作,即具有讀寫共享的功能。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解

    Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解

    這篇文章主要為大家介紹了Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南)

    K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南)

    Kubernetes調(diào)度機制是集群的智能調(diào)度中樞,主要完成過濾和打分兩個決策,在生產(chǎn)環(huán)境中,核心調(diào)度策略包括資源調(diào)度、親和性調(diào)度、污點與容忍、拓撲分布約束等,本文介紹K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南),感興趣的朋友一起看看吧
    2025-03-03
  • 安裝ingress-nginx遇到的一些坑實戰(zhàn)記錄

    安裝ingress-nginx遇到的一些坑實戰(zhàn)記錄

    ingress是kubernetes集群對外暴露服務(wù)的一種方式,下面這篇文章主要給大家介紹了關(guān)于安裝ingress-nginx遇到的一些坑,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • 解決k8s namespace 一直處于 Terminating 狀態(tài)的問題

    解決k8s namespace 一直處于 Terminating 狀態(tài)的問題

    這篇文章主要介紹了k8s namespace 一直處于 Terminating 狀態(tài)的解決方法,以下的 tool 為 Terminating 狀態(tài)的 namespace,下面相關(guān)的一些操作記得將 tool 修改成自己的 namespace 名稱,需要的朋友可以參考下
    2022-10-10
  • 如何把k8s容器里的文件復(fù)制到本地

    如何把k8s容器里的文件復(fù)制到本地

    這篇文章主要介紹了如何把k8s容器里的文件復(fù)制到本地方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Linux安裝Kubernetes(k8s)超詳細教程

    Linux安裝Kubernetes(k8s)超詳細教程

    Kubernetes是一個輕便的和可擴展的開源平臺,用于管理容器化應(yīng)用和服務(wù),通過Kubernetes能夠進行應(yīng)用的自動化部署和擴縮容,這篇文章主要給大家介紹了關(guān)于Linux安裝Kubernetes(k8s)的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • kubernetes部署dashboard及應(yīng)用小結(jié)

    kubernetes部署dashboard及應(yīng)用小結(jié)

    Dashboard?是基于網(wǎng)頁的?Kubernetes?用戶界面,可以對?Deployment?實現(xiàn)彈性伸縮、發(fā)起滾動升級、重啟?Pod?或者使用向?qū)?chuàng)建新的應(yīng)用,這篇文章主要介紹了kubernetes部署dashboard,需要的朋友可以參考下
    2024-06-06
  • k8s編排之DaemonSet知識點詳解

    k8s編排之DaemonSet知識點詳解

    這篇文章主要為大家介紹了k8s編排之DaemonSet知識點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • tkestack/gpu-manager在k8s1.23版本之后的使用方法

    tkestack/gpu-manager在k8s1.23版本之后的使用方法

    這篇文章主要介紹了tkestack/gpu-manager在k8s1.23版本之后的使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • MinIO分布式文件存儲(從入門到飛翔)

    MinIO分布式文件存儲(從入門到飛翔)

    MinIO是一款高性能的分布式對象存儲系統(tǒng),兼容Amazon S3協(xié)議,具有輕量級、易部署、高可用和可擴展性等優(yōu)勢,它通過糾刪碼技術(shù)實現(xiàn)數(shù)據(jù)冗余與高容錯性,適用于私有云存儲、大數(shù)據(jù)分析和靜態(tài)資源托管等場景,本文介紹MinIO分布式文件存儲的相關(guān)知識,感興趣的朋友一起看看吧
    2025-03-03

最新評論