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

K8S基本概念+pod生命周期+容器重啟策略+Init容器和邊車容器+pod探針+postStart和preStop

這篇具有很好參考價值的文章主要介紹了K8S基本概念+pod生命周期+容器重啟策略+Init容器和邊車容器+pod探針+postStart和preStop。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一 kubernetes 基礎(chǔ)

Kubernetes是谷歌以Borg為前身,基于谷歌15年生產(chǎn)環(huán)境經(jīng)驗的基礎(chǔ)上開源的一個項目,Kubernetes致力于提供跨主機集群的自動部署、擴展、高可用以及運行應(yīng)用程序容器的平臺。

二 Master 節(jié)點

  • kube-APIServer:集群的控制中樞,各個模塊之間信息交互都需要經(jīng)過Kube-APIServer,同時它也是集群管理、資源配置、整個集群安全機制的入口。
  • kube-controller-manager:集群的狀態(tài)管理器,保證Pod或其他資源達到期望值,也是需要和APIServer進行通信,在需要的時候創(chuàng)建、更新或刪除它所管理的資源。
  • kube-scheduler:集群的調(diào)度中心,它會根據(jù)指定的一系列條件,選擇一個或一批最佳的節(jié)點,然后部署我們的Pod。
  • etcd:鍵值數(shù)據(jù)庫,報錯一些集群的信息,一般生產(chǎn)環(huán)境中建議部署三個以上節(jié)點(奇數(shù)個。生產(chǎn)環(huán)境建議用SSD存儲以提高性能)。

三 Node 節(jié)點

  • Kubelet:負責(zé)監(jiān)聽節(jié)點上Pod的狀態(tài),同時負責(zé)上報節(jié)點和節(jié)點上面Pod的狀態(tài),負責(zé)與Master節(jié)點通信,并管理節(jié)點上面的Pod。
  • Kube-proxy:負責(zé)Pod之間的通信和負載均衡,將指定的流量分發(fā)到后端正確的機器上。查看Kube-proxy工作模式:curl 127.0.0.1:10249/proxyMode,Ipvs:監(jiān)聽Master節(jié)點增加和刪除service以及endpoint的消息,調(diào)用Netlink接口創(chuàng)建相應(yīng)的IPVS規(guī)則。通過IPVS規(guī)則,將流量轉(zhuǎn)發(fā)至相應(yīng)的Pod上。
  • Calico:符合CNI標(biāo)準(zhǔn)的網(wǎng)絡(luò)插件,給每個Pod生成一個唯一的IP地址,并且把每個節(jié)點當(dāng)做一個路由器。
  • CoreDNS:用于Kubernetes集群內(nèi)部Service的解析,可以讓Pod把Service名稱解析成IP地址,然后通過Service的IP地址進行連接到對應(yīng)的應(yīng)用上。
  • Docker:容器引擎,負責(zé)對容器的管理。(或者用containerd)

四 什么是pod

Pod可簡單地理解為是一組、一個或多個容器,具有共享存儲/網(wǎng)絡(luò)及如何運行容器的規(guī)范。Pad包含一個或多個相對緊密耦合的應(yīng)用程序容器,處于同一個Pod中的容器共享同樣的存儲空間(Volume,卷或存儲卷)、IP地址和Port端口,容器之間使用localhost:port相互訪問。根據(jù)Docker的構(gòu)造,Pod可被建模為一組具有共享命令空間、卷、IP地址和Port端口的Docker容器。
Pod包含的容器最好是一個容器只運行一個進程。每個Pod包含一個pause容器,pause容器是Pod的父容器,它主要負責(zé)僵尸進程的回收管理。
Kubernetes為每個Pod都分配一個唯一的IP地址,這樣就可以保證應(yīng)用程序使用同一端口,避免了發(fā)生沖突的問題。

nginx pod

apiVersion: v1 # 必選,API的版本號
kind: Pod       # 必選,類型Pod
metadata:       # 必選,元數(shù)據(jù)
  name: nginx   # 必選,符合RFC 1035規(guī)范的Pod名稱
  namespace: app # 可選,Pod所在的命名空間,不指定默認為default,可以使用-n 指定namespace 
  labels:       # 可選,標(biāo)簽選擇器,一般用于過濾和區(qū)分Pod
    app: nginx
    role: frontend # 可以寫多個
  annotations:  # 可選,注釋列表,可以寫多個
    app: nginx
spec:   # 必選,用于定義容器的詳細信息
  initContainers: # 初始化容器,在容器啟動之前執(zhí)行的一些初始化操作
  - command:
    - sh
    - -c
    - echo "I am InitContainer for init some configuration"
    image: busybox
    imagePullPolicy: IfNotPresent
    name: init-container
  containers:   # 必選,容器列表
  - name: nginx # 必選,符合RFC 1035規(guī)范的容器名稱
    image: nginx:latest    # 必選,容器所用的鏡像的地址
    imagePullPolicy: Always     # 可選,鏡像拉取策略
    command: # 可選,容器啟動執(zhí)行的命令
    - nginx 
    - -g
    - "daemon off;"
    workingDir: /usr/share/nginx/html       # 可選,容器的工作目錄
    volumeMounts:   # 可選,存儲卷配置,可以配置多個
    - name: webroot # 存儲卷名稱
      mountPath: /usr/share/nginx/html # 掛載目錄
      readOnly: true        # 只讀
    ports:  # 可選,容器需要暴露的端口號列表
    - name: http    # 端口名稱
      containerPort: 80     # 端口號
      protocol: TCP # 端口協(xié)議,默認TCP
    env:    # 可選,環(huán)境變量配置列表
    - name: TZ      # 變量名
      value: Asia/Shanghai # 變量的值
    - name: LANG
      value: en_US.utf8
    resources:      # 可選,資源限制和資源請求限制
      limits:       # 最大限制設(shè)置
        cpu: 1000m
        memory: 1024Mi
      requests:     # 啟動所需的資源
        cpu: 1000m
        memory: 512Mi
    startupProbe: # 可選,檢測容器內(nèi)進程是否完成啟動。注意三種檢查方式同時只能使用一種。
      httpGet:      # httpGet檢測方式,生產(chǎn)環(huán)境建議使用httpGet實現(xiàn)接口級健康檢查,健康檢查由應(yīng)用程序提供。
            path: /api/successStart # 檢查路徑
            port: 80
    readinessProbe: # 可選,健康檢查。注意三種檢查方式同時只能使用一種。
      httpGet:      # httpGet檢測方式,生產(chǎn)環(huán)境建議使用httpGet實現(xiàn)接口級健康檢查,健康檢查由應(yīng)用程序提供。
            path: / # 檢查路徑
            port: 80        # 監(jiān)控端口
    livenessProbe:  # 可選,健康檢查
      #exec:        # 執(zhí)行容器命令檢測方式
            #command: 
            #- cat
            #- /health
    httpGet:       # httpGet檢測方式
       path: /_health # 檢查路徑
       port: 8080
       httpHeaders: # 檢查的請求頭
       - name: end-user
         value: Jason 
      tcpSocket:    # 端口檢測方式
            port: 80
      initialDelaySeconds: 60       # 初始化時間
      timeoutSeconds: 2     # 超時時間
      periodSeconds: 5      # 檢測間隔
      successThreshold: 1 # 檢查成功為2次表示就緒
      failureThreshold: 2 # 檢測失敗1次表示未就緒
    lifecycle:
      postStart: # 容器創(chuàng)建完成后執(zhí)行的指令, 可以是exec httpGet TCPSocket
        exec:
          command:
          - sh
          - -c
          - 'mkdir /data/ '
      preStop:
        httpGet:      
              path: /
              port: 80
        exec:
          command:
          - sh
          - -c
          - sleep 9
  restartPolicy: Always   # 可選,容器重啟策略,默認為Always
  nodeSelector: # 可選,指定Node節(jié)點
    region: subnet7
  imagePullSecrets:     # 可選,拉取鏡像使用的secret,可以配置多個
  - name: default-dockercfg-86258
  hostNetwork: false    # 可選,是否為主機模式,如是,會占用主機端口
  volumes:      # 共享存儲卷列表
  - name: webroot # 名稱,與上述對應(yīng)
    emptyDir: {}    # 掛載目錄
        hostPath:              # 掛載本機目錄
          path: /etc/hosts

五 Pod 生命周期

Pod 自身不具有自愈能力。如果 Pod 被調(diào)度到某節(jié)點而該節(jié)點之后失效, Pod 會被刪除;類似地,Pod 無法在因節(jié)點資源耗盡或者節(jié)點維護而被驅(qū)逐期間繼續(xù)存活。 Kubernetes 使用一種高級抽象來管理這些相對而言可隨時丟棄的 Pod 實例, 稱作控制器。

pod生命周期分類:

  • Pending(等待) Pod 已被 Kubernetes 系統(tǒng)接受,但有一個或者多個容器尚未創(chuàng)建亦未運行。此階段包括等待 Pod 被調(diào)度的時間和通過網(wǎng)絡(luò)下載鏡像的時間。
  • Running(運行中) Pod 已經(jīng)綁定到了某個節(jié)點,Pod 中所有的容器都已被創(chuàng)建。至少有一個容器仍在運行,或者正處于啟動或重啟狀態(tài)。
  • Succeeded(成功) Pod 中的所有容器都已成功終止,并且不會再重啟。
  • Failed(失?。?Pod 中的所有容器都已終止,并且至少有一個容器是因為失敗終止。也就是說,容器以非 0 狀態(tài)退出或者被系統(tǒng)終止。
  • Unknown(未知) 因為某些原因無法取得 Pod 的狀態(tài)。這種情況通常是因為與 Pod 所在主機通信失敗。
  • Terminated(已終止)Pod 處于 Terminated 狀態(tài)的容器已經(jīng)開始執(zhí)行并且或者正常結(jié)束或者因為某些原因失敗。 如果你使用 kubectl 來查詢包含 Terminated 狀態(tài)的容器的 Pod 時, 你會看到容器進入此狀態(tài)的原因、退出代碼以及容器執(zhí)行期間的起止時間。(如果容器配置了 preStop 回調(diào),則該回調(diào)會在容器進入 Terminated 狀態(tài)之前執(zhí)行)

六 容器重啟策略

Pod 的 spec 中包含一個 restartPolicy 字段,其可能取值包括 Always、OnFailure 和 Never。默認值是 Always。

  • Always:當(dāng)容器終止退出后,總是重啟容器,默認策略
  • OnFailure:當(dāng)容器異常退出(退出狀態(tài)碼非0)時,重啟容器
  • Never:當(dāng)容器終止退出,從不重啟容器。

當(dāng) kubelet 根據(jù)配置的重啟策略處理容器重啟時,僅適用于同一 Pod 內(nèi)替換容器并在同一節(jié)點上運行的重啟。當(dāng) Pod 中的容器退出時,kubelet 會按指數(shù)回退方式計算重啟的延遲(10s、20s、40s、…),其最長延遲為 5 分鐘。 一旦某容器執(zhí)行了 10 分鐘并且沒有出現(xiàn)問題,kubelet 對該容器的重啟回退計時器執(zhí)行重置操作。 Sidecar 容器和 Pod 生命周期中解釋了 init containers 在指定 restartpolicy 字段時的行為。

七 Init 容器

每個 Pod 中可以包含多個容器, 應(yīng)用運行在這些容器里面,同時 Pod 也可以有一個或多個先于應(yīng)用容器啟動的 Init 容器。

Init 容器與普通的容器非常像,除了如下兩點:

  • 它們總是運行到完成。
  • 每個都必須在下一個啟動之前成功完成。

如果 Pod 的 Init 容器失敗,kubelet 會不斷地重啟該 Init 容器直到該容器成功為止。 然而,如果 Pod 對應(yīng)的 restartPolicy 值為 “Never”,并且 Pod 的 Init 容器失敗, 則 Kubernetes 會將整個 Pod 狀態(tài)設(shè)置為失敗。

Init 容易與主應(yīng)用容器的區(qū)別

  • 在 Pod 初始化期間完成運行的容器,即先運行init容器結(jié)束后運行應(yīng)用容器。
  • Init 容器支持應(yīng)用容器的全部字段和特性,包括資源限制、 數(shù)據(jù)卷和安全設(shè)置。
  • 常規(guī)的 Init 容器(即不包括邊車容器)不支持 lifecycle、livenessProbe、readinessProbe 或 startupProbe 字段。
  • 如果為一個 Pod 指定了多個 Init 容器,這些容器會按順序逐個運行。 每個 Init 容器必須運行成功,下一個才能夠運行。當(dāng)所有的 Init 容器運行完成時, Kubernetes 才會為 Pod 初始化應(yīng)用容器并像平常一樣運行。

使用 Init 容器

init 容器特點:(總結(jié)一下就是為了初始化應(yīng)用容器的一個方式,優(yōu)化應(yīng)用容器的體積。)

  • Init 容器可以包含一些安裝過程中應(yīng)用容器中不存在的實用工具或個性化代碼。 例如,沒有必要僅為了在安裝過程中使用類似 sed、awk、python 或 dig 這樣的工具而去 FROM 一個鏡像來生成一個新的鏡像。

  • 應(yīng)用鏡像的創(chuàng)建者和部署者可以各自獨立工作,而沒有必要聯(lián)合構(gòu)建一個單獨的應(yīng)用鏡像。

  • 與同一 Pod 中的多個應(yīng)用容器相比,Init 容器能以不同的文件系統(tǒng)視圖運行。因此,Init 容器可以被賦予訪問應(yīng)用容器不能訪問的 Secret 的權(quán)限。

  • 由于 Init 容器必須在應(yīng)用容器啟動之前運行完成,因此 Init 容器提供了一種機制來阻塞或延遲應(yīng)用容器的啟動,直到滿足了一組先決條件。 一旦前置條件滿足,Pod 內(nèi)的所有的應(yīng)用容器會并行啟動。

  • Init 容器可以安全地運行實用程序或自定義代碼,而在其他方式下運行這些實用程序或自定義代碼可能會降低應(yīng)用容器鏡像的安全性。 通過將不必要的工具分開,你可以限制應(yīng)用容器鏡像的被攻擊范圍。

示例:
下面的例子定義了一個具有 2 個 Init 容器的簡單 Pod。 第一個 啟動 init-myservice, 第二個啟動 init-mydb。這兩個init容器啟動完成以后,Pod 將啟動 spec 節(jié)中的 myapp-container 應(yīng)用容器。

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app.kubernetes.io/name: MyApp
spec:
  containers:
  - name: myapp-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox:1.28
    command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
  - name: init-mydb
    image: busybox:1.28
    command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]

八 邊車容器

邊車容器是與主應(yīng)用容器在同一個 Pod 中運行的輔助容器。 這些容器通過提供額外的服務(wù)或功能(如日志記錄、監(jiān)控、安全性或數(shù)據(jù)同步)來增強或擴展主應(yīng)用容器的功能, 而無需直接修改主應(yīng)用代碼。

與主應(yīng)用容器的區(qū)別

  • 邊車容器與同一 Pod 中的常規(guī)容器并行運行。不過邊車容器不執(zhí)行主應(yīng)用邏輯,而是為主應(yīng)用提供支持功能。

  • 邊車容器具有獨立的生命周期。它們可以獨立于常規(guī)容器啟動、停止和重啟。 這意味著你可以更新、擴展或維護邊車容器,而不影響主應(yīng)用

  • 邊車容器與主容器共享相同的網(wǎng)絡(luò)和存儲命名空間。這種共存使它們能夠緊密交互并共享資源。

與init 容器的區(qū)別

  • 邊車容器與主容器并行工作,擴展其功能并提供附加服務(wù),Init 容器不會持續(xù)與主容器一起運行。
  • 邊車容器與主應(yīng)用容器同時運行。它們在整個 Pod 的生命周期中都處于活動狀態(tài),并且可以獨立于主容器啟動和停止。 與 Init 容器不同, 邊車容器支持所有探針來控制其生命周期。
  • 這些邊車容器可以直接與主應(yīng)用容器進行交互,共享相同的網(wǎng)絡(luò)命名空間、文件系統(tǒng)和環(huán)境變量。 所有這些容器緊密合作,提供額外的功能。
  • 書寫格式上面有帶呢區(qū)別,縮緊不一樣。

示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: alpine:latest
          command: ['sh', '-c', 'echo "logging" > /opt/logs.txt']
          volumeMounts:
            - name: data
              mountPath: /opt
      initContainers:
        - name: logshipper
          image: alpine:latest
          restartPolicy: Always
          command: ['sh', '-c', 'tail /opt/logs.txt']
          volumeMounts:
            - name: data
              mountPath: /opt
  volumes:
    - name: data
      emptyDir: {}

九 Pod 探針

  • StartupProbe:k8s1.16版本后新加的探測方式,用于判斷容器內(nèi)應(yīng)用程序是否已經(jīng)啟動。如果配置了startupProbe,就會先禁止其他的探測,直到它成功為止,成功后將不在進行探測。
  • LivenessProbe:用于探測容器是否運行,如果探測失敗,kubelet會根據(jù)配置的重啟策略進行相應(yīng)的處理。若沒有配置該探針,默認就是success。
  • ReadinessProbe:一般用于探測容器內(nèi)的程序是否健康,它的返回值如果為success,那么久代表這個容器已經(jīng)完成啟動,并且程序已經(jīng)是可以接受流量的狀態(tài)。

探針檢測方式

  • ExecAction:在容器內(nèi)執(zhí)行一個命令,如果返回值為0,則認為容器健康。
  • TCPSocketAction:通過TCP連接檢查容器內(nèi)的端口是否是通的,如果是通的就認為容器健康。
  • HTTPGetAction:通過應(yīng)用程序暴露的API地址來檢查程序是否是正常的,如果狀態(tài)碼為200~400之間,則認為容器健康。

ExecAction 探測舉例:

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: registry.k8s.io/busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5

TCPSocketAction 舉例:

apiVersion: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: goproxy
spec:
  containers:
  - name: goproxy
    image: registry.k8s.io/goproxy:0.1
    ports:
    - containerPort: 8080
    readinessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 10
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20

HTTPGetAction 舉例:

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-http
spec:
  containers:
  - name: liveness
    image: registry.k8s.io/liveness
    args:
    - /server
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
        httpHeaders:
        - name: Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3

探針參數(shù)配置

initialDelaySeconds: 60       # 初始化時間
timeoutSeconds: 2             # 超時時間
periodSeconds: 5              # 檢測間隔
successThreshold: 1           # 檢查成功為1次表示就緒
failureThreshold: 2           # 檢測失敗2次表示未就緒

十 定義 postStart 和 preStop 處理函數(shù)

創(chuàng)建一個包含一個容器的 Pod,該容器為 postStart 和 preStop 事件提供對應(yīng)的處理函數(shù)。

在下面的配置文件中,你可以看到 postStart 命令在容器的 /usr/share 目錄下寫入文件 message。 命令 preStop 負責(zé)優(yōu)雅地終止 nginx 服務(wù)。當(dāng)因為失效而導(dǎo)致容器終止時,這一處理方式很有用。文章來源地址http://www.zghlxwxcb.cn/news/detail-852605.html

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
      preStop:
        exec:
          command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]

到了這里,關(guān)于K8S基本概念+pod生命周期+容器重啟策略+Init容器和邊車容器+pod探針+postStart和preStop的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • 【云原生】深入掌握k8s中Pod和生命周期

    【云原生】深入掌握k8s中Pod和生命周期

    ? ? 個人主頁: 征服bug-CSDN博客 kubernetes專欄: kubernetes_征服bug的博客-CSDN博客? 1 什么是 Pod 2 Pod 基本操作 3 Pod 運行多個容器 4 Pod 的 Labels(標(biāo)簽) 5 Pod 的生命周期 1 什么是 Pod 摘取官網(wǎng): Pod | Kubernetes 1.1 簡介 ????????Pod 是可以在 Kubernetes 中 創(chuàng)建和管理的、最小的可部署的計

    2024年02月14日
    瀏覽(60)
  • K8s: 關(guān)于Kubernetes中的Pod的生命周期(狀態(tài))以及生命周期的鉤子函數(shù)處理

    pod 的生命周期 1 ) pod 幾種常用狀態(tài) 1.1 )Pending(掛起) Pod 已被 Kubernetes 系統(tǒng)接受,但有一個或者多個容器尚未創(chuàng)建亦未運行 此階段包括等待 Pod 被調(diào)度的時間和通過網(wǎng)絡(luò)下載鏡像的時間。 1.2 )Running(運行中) Pod 已經(jīng)綁定到了某個節(jié)點,Pod 中所有的容器都已被創(chuàng)建 至少有

    2024年04月22日
    瀏覽(40)
  • 飛天使-k8s知識點18-kubernetes實操3-pod的生命周期

    飛天使-k8s知識點18-kubernetes實操3-pod的生命周期

    探針的生命周期 docker 創(chuàng)建:在創(chuàng)建階段,你需要選擇一個鏡像來運行你的應(yīng)用。這個鏡像可以是公開的,如 Docker Hub 上的鏡像,也可以是你自己創(chuàng)建的自定義鏡像。創(chuàng)建自己的鏡像通常需要編寫一個 Dockerfile,這個文件定義了創(chuàng)建鏡像所需的所有步驟,包括基礎(chǔ)鏡像、需要安

    2024年02月20日
    瀏覽(26)
  • K8s Pod親和性、污點、容忍度、生命周期與健康探測詳解(下)

    K8s Pod親和性、污點、容忍度、生命周期與健康探測詳解(下)

    ??明明跟你說過:個人主頁 ??個人專欄:《Kubernetes航線圖:從船長到K8s掌舵者》??? ??行路有良友,便是天堂?? 目錄 五、健康探測 1、健康探測的概念 2、Pod啟動探測(Startup Probe) 3、Pod存活探測(Liveness Probe) 4、Pod就緒探測(Readiness Probe) 5、Pod健康探測在故障轉(zhuǎn)移與

    2024年04月08日
    瀏覽(32)
  • K8S初級入門系列之三-Pod的基本概念和操作

    K8S初級入門系列之三-Pod的基本概念和操作

    ? ? ? ?Pod的原意是豌豆莢的意思,一個豆莢里面包含了很多豆子。在K8S中,Pod也是類似的意思,只不過這里的豆子就是容器。在K8S初級入門系列之一-概述中,我們對Pod有個初步的了解。 1、Pod是K8S編排和調(diào)度的最小基礎(chǔ)單元。 ? ? ? ? 了解容器的同學(xué)會知道,容器之間通過

    2024年02月15日
    瀏覽(26)
  • k8s-kubectl命令詳解、Pod創(chuàng)建過程、Pod的生命周期、定制Pod、資源對象文件

    k8s-kubectl命令詳解、Pod創(chuàng)建過程、Pod的生命周期、定制Pod、資源對象文件

    kubectl是用于管理Kubernetes集群的命令行工具 kubectl [command] [TYPE] [NAME] [flags] command:子命令,如create,get,describe,delete type:資源類型,可以表示為單數(shù),復(fù)數(shù)或縮寫形式 name:資源的名稱,如果省略,則顯示所有資源信息 flags:指定可選標(biāo)志,或附加的參數(shù) 子命令 說明 help

    2024年03月22日
    瀏覽(26)
  • 【k8s問題定位】k8s中的pod不停的重啟,定位問題原因與解決方法

    【k8s問題定位】k8s中的pod不停的重啟,定位問題原因與解決方法

    現(xiàn)象: running的pod,短時間內(nèi)重啟次數(shù)太多 ? 定位問題方法: 查看pod日志 本次使用以下命令,解決了問題 問題原因: OOM,pod被kill掉,重啟了( 內(nèi)存不夠用 ) ? 查看該服務(wù)的deployment.yaml文件 發(fā)現(xiàn)我們deployment.yaml對服務(wù)的內(nèi)存使用,做了限制 解決方法: 將limit的memory數(shù)值提高,然后

    2024年02月09日
    瀏覽(38)
  • 關(guān)于k8s的pod不斷重啟的原因分析

    關(guān)于k8s的pod不斷重啟的原因分析

    k8s全稱:Kubernetes 1、k8s是什么 Kubernetes 是一個全新的基于容器技術(shù)的分布式架構(gòu)解決方案,是 Google 開源的一個容器集群管理系統(tǒng),Kubernetes 簡稱 K8S。 Kubernetes 是一個一站式的完備的分布式系統(tǒng)開發(fā)和支撐平臺,更是一個開放平臺,對現(xiàn)有的編程語言、編程框架、中間件沒有

    2024年02月07日
    瀏覽(25)
  • 案例分享-full gc導(dǎo)致k8s pod重啟

    案例分享-full gc導(dǎo)致k8s pod重啟

    ?在之前的記一次k8s pod頻繁重啟的優(yōu)化之旅中分享過對于pod頻繁重啟的一些案例,最近又遇到一例,繼續(xù)分享出來希望能給大家?guī)硇┰S收獲。 報警群里突然顯示某pod頻繁重啟,我隨即上去查看日志,主要分這么幾步:?? 1.查看pod重啟的原因,kubectl descirbe pod 上面的Reason:

    2024年02月02日
    瀏覽(21)
  • k8s的node節(jié)點重啟后pod不正常運行

    同事在k8s集群中的node3跑算法時候,把node3打崩了,導(dǎo)致kubelet服務(wù)不能正常運行和集群通信。 先將node節(jié)點打上不可調(diào)度標(biāo)簽,然后執(zhí)行驅(qū)逐。 已經(jīng)看到pod在其他節(jié)點創(chuàng)建出來的,但是node3上面的pod仍然處于terminating狀態(tài)。 剛開始我以為是磁盤io仍然太高,導(dǎo)致它延遲,等同事

    2024年02月07日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包