最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

kubernetes?k8s入門(mén)定義一個(gè)Pod

 更新時(shí)間:2022年03月18日 17:47:30   作者:、重明  
這篇文章主要為大家介紹了k8s入門(mén)定義一個(gè)Pod以及破底的定義內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多計(jì)步,早日升職加薪

什么是Pod?

pod是kubernetes中最小的單元,由一組、一個(gè)或多個(gè)容器組成,每個(gè)pod中包含了一個(gè)pause容器。

pause容器是pod的父容器,主要負(fù)責(zé)僵尸進(jìn)程的回收管理,通過(guò)pause容器可以使同一個(gè)pod中多個(gè)容器共享存儲(chǔ)、網(wǎng)絡(luò)、PID、IPC等,同一個(gè)Pod中多容器間訪問(wèn)僅通過(guò)localhost就可以通信。

在這里插入圖片描述

為什么要引入Pod?

將有強(qiáng)依賴(lài)性的容器放在同一個(gè)Pod里,例如要求低延遲性,容器A與容器B之間文件上的聯(lián)系等,引入Pod的概念是可以提高性能、便于管理。
從k8s角度說(shuō),docker是容器,但是容器卻不只是docker,引入pod可以使容器間工作更協(xié)調(diào)。

定義一個(gè)Pod:pod.yaml

下面這個(gè)yaml文件可能復(fù)制有問(wèn)題,你也可以使用下面命令生成一個(gè)yaml文件作為模板進(jìn)行修改:

kubectl create deployment nginx --image=nginx -o yaml --dry-run=client >nginx.yaml
apiVersion: v1 # 必選,API的版本號(hào)
kind: Pod       # 必選,類(lèi)型Pod
metadata:       # 必選,元數(shù)據(jù)
  name: nginx   # 必選,符合RFC 1035規(guī)范的Pod名稱(chēng)
  # namespace: default # 可選,Pod所在的命名空間,不指定默認(rèn)為default,可以使用-n 指定namespace 
  labels:       # 可選,標(biāo)簽選擇器,一般用于過(guò)濾和區(qū)分Pod
    app: nginx
    role: frontend # 可以寫(xiě)多個(gè)
  annotations:  # 可選,注釋列表,可以寫(xiě)多個(gè)
    app: nginx
spec:   # 必選,用于定義容器的詳細(xì)信息
#  initContainers: # 初始化容器,在容器啟動(dòng)之前執(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ī)范的容器名稱(chēng)
    image: nginx:1.15.2    # 必選,容器所用的鏡像的地址
    imagePullPolicy: IfNotPresent     # 可選,鏡像拉取策略, IfNotPresent: 如果宿主機(jī)有這個(gè)鏡像,那就不需要拉取了. Always: 總是拉取, Never: 不管是否存儲(chǔ)都不拉去
    command: # 可選,容器啟動(dòng)執(zhí)行的命令 ENTRYPOINT, arg --> cmd
    - nginx 
    - -g
    - "daemon off;"
    workingDir: /usr/share/nginx/html       # 可選,容器的工作目錄
#    volumeMounts:   # 可選,存儲(chǔ)卷配置,可以配置多個(gè)
#    - name: webroot # 存儲(chǔ)卷名稱(chēng)
#      mountPath: /usr/share/nginx/html # 掛載目錄
#      readOnly: true        # 只讀
    ports:  # 可選,容器需要暴露的端口號(hào)列表
    - name: http    # 端口名稱(chēng)
      containerPort: 80     # 端口號(hào)
      protocol: TCP # 端口協(xié)議,默認(rèn)TCP
    env:    # 可選,環(huán)境變量配置列表
    - name: TZ      # 變量名
      value: Asia/Shanghai # 變量的值
    - name: LANG
      value: en_US.utf8
#    resources:      # 可選,資源限制和資源請(qǐng)求限制
#      limits:       # 最大限制設(shè)置
#        cpu: 1000m
#        memory: 1024Mi
#      requests:     # 啟動(dòng)所需的資源
#        cpu: 100m
#        memory: 512Mi
#    startupProbe: # 可選,檢測(cè)容器內(nèi)進(jìn)程是否完成啟動(dòng)。注意三種檢查方式同時(shí)只能使用一種。
#      httpGet:      # httpGet檢測(cè)方式,生產(chǎn)環(huán)境建議使用httpGet實(shí)現(xiàn)接口級(jí)健康檢查,健康檢查由應(yīng)用程序提供。
#            path: /api/successStart # 檢查路徑
#            port: 80
#    readinessProbe: # 可選,健康檢查。注意三種檢查方式同時(shí)只能使用一種。
#      httpGet:      # httpGet檢測(cè)方式,生產(chǎn)環(huán)境建議使用httpGet實(shí)現(xiàn)接口級(jí)健康檢查,健康檢查由應(yīng)用程序提供。
#            path: / # 檢查路徑
#            port: 80        # 監(jiān)控端口
#    livenessProbe:  # 可選,健康檢查
      #exec:        # 執(zhí)行容器命令檢測(cè)方式
            #command: 
            #- cat
            #- /health
    #httpGet:       # httpGet檢測(cè)方式
    #   path: /_health # 檢查路徑
    #   port: 8080
    #   httpHeaders: # 檢查的請(qǐng)求頭
    #   - name: end-user
    #     value: Jason 
#      tcpSocket:    # 端口檢測(cè)方式
#            port: 80
#      initialDelaySeconds: 60       # 初始化時(shí)間
#      timeoutSeconds: 2     # 超時(shí)時(shí)間
#      periodSeconds: 5      # 檢測(cè)間隔
#      successThreshold: 1 # 檢查成功為2次表示就緒
#      failureThreshold: 2 # 檢測(cè)失敗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   # 可選,默認(rèn)為Always,容器故障或者沒(méi)有啟動(dòng)成功,那就自動(dòng)該容器,Onfailure: 容器以不為0的狀態(tài)終止,自動(dòng)重啟該容器, Never:無(wú)論何種狀態(tài),都不會(huì)重啟
  #nodeSelector: # 可選,指定Node節(jié)點(diǎn)
  #      region: subnet7
#  imagePullSecrets:     # 可選,拉取鏡像使用的secret,可以配置多個(gè)
#  - name: default-dockercfg-86258
#  hostNetwork: false    # 可選,是否為主機(jī)模式,如是,會(huì)占用主機(jī)端口
#  volumes:      # 共享存儲(chǔ)卷列表
#  - name: webroot # 名稱(chēng),與上述對(duì)應(yīng)
#    emptyDir: {}    # 掛載目錄
#        hostPath:              # 掛載本機(jī)目錄
#          path: /etc/hosts

apiserver:定義API的版本號(hào)

kind:創(chuàng)建資源類(lèi)型,如pod、deployment等

metadata:元數(shù)據(jù),如pod的一些基本信息

spec:用于定義容器的詳細(xì)信息

執(zhí)行yaml文件創(chuàng)建Pod:

kubectl create -f pod.yaml

完成后查看Pod:

kubectl get pod

注意:生產(chǎn)中基本不會(huì)直接使用pod進(jìn)行部署,但是yaml文件大同小異。需要熟悉yaml文件的格式和配置項(xiàng)。

Pod探針:

StartupProbe:1.16版本后增加的探針?lè)绞?,用于判斷容器?nèi)應(yīng)用程序是否已經(jīng)啟動(dòng),如果配置了StartupProbe,就會(huì)先禁止其他探測(cè),直到成功,成功后將不在進(jìn)程探測(cè)。

LivenessProbe:用于探測(cè)容器是否運(yùn)行,如果探測(cè)失敗,kubelet會(huì)根據(jù)配置的重啟策略進(jìn)行相應(yīng)的處理。若沒(méi)有配置該探針,默認(rèn)就是success。

ReadinessProbe:一般用于探測(cè)容器內(nèi)的程序是否健康,它的返回值如果為success,那么代表這個(gè)容器已經(jīng)啟動(dòng)成功,并且程序已經(jīng)是可以接受流量的狀態(tài)。

Pod探針檢測(cè)方式:

以上探針均可配置以下方式:

ExecAction:在容器內(nèi)執(zhí)行一個(gè)命令,如果返回值為0,則認(rèn)為容器健康(類(lèi)似于執(zhí)行一個(gè)命令后,執(zhí)行echo $?返回值為0代表成功是一樣的)

livenessProbe:
  exec:
    command:
    - cat
    - /tmp/health

TCPSocketAction:通過(guò)TCP連接檢查容器內(nèi)的端口是否通的,如果是通的則認(rèn)為容器健康(類(lèi)似于telnet 127.0.0.1 3306,執(zhí)行成功的話判斷為容器健康)

livenessProbe:
  tcpSocket:
    port: 80

HTTPGetAction:通過(guò)應(yīng)用程序暴露的API地址來(lái)檢查程序是否正常,如果狀態(tài)碼為200~400之間,則認(rèn)為容器健康。(生產(chǎn)使用最多)

livenessProbe:
  httpGet:
    path: /status/health
    port: 80

探針檢查的幾個(gè)參數(shù):

initialDelaySeconds:初始化時(shí)間(比如程序啟動(dòng)慢,我要多少秒后才會(huì)檢查)

timeoutSeconds:超時(shí)時(shí)間(1-2秒)

periodSeconds:檢測(cè)間隔,多長(zhǎng)時(shí)間檢測(cè)一次(5秒)

successThreshold:檢測(cè)成功次數(shù),比如檢測(cè)成功幾次代表就緒(1-2次)

failureThreshold:檢測(cè)失敗次數(shù),比如檢測(cè)失敗幾次代表未就緒(2次)

重啟策略:timeoutSecondsperiodSecondsfailureThreshold

我們可以看以下coredns的探針配置:

# 查看pod名稱(chēng)
[root@k8s-master01 ~]# kubectl get deployment -n kube-system
coredns                   1/1     1            1           5d18h

# 在線編譯coredns的yaml文件
[root@k8s-master01 ~]# kubectl edit deployment coredns -n kube-system
        livenessProbe:
          failureThreshold: 5
          httpGet:
            path: /health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 60           
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 5        
# 上面代表請(qǐng)求8080的/health接口,如果訪問(wèn)成功則保留容器不會(huì)被殺死
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /ready
            port: 8181
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1         
# 上面配置代表請(qǐng)求8181的/ready接口成功,說(shuō)明容器可以正常開(kāi)始工作了

Pod退出流程

Prestop:先去請(qǐng)求eureka接口,把自己的IP地址和端口號(hào),進(jìn)行下線,eureka從注冊(cè)表中該應(yīng)用的IP地址。然后容器進(jìn)行sleep 90,kill ‘進(jìn)程’;(注意90不是確定值,而是根據(jù)實(shí)際情況進(jìn)行變化的)

在這里插入圖片描述

以上就是kubernetes k8s入門(mén)定義一個(gè)Pod的詳細(xì)內(nèi)容,更多關(guān)于k8s入門(mén)定義Pod的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

    Kubernetes調(diào)度機(jī)制是集群的智能調(diào)度中樞,主要完成過(guò)濾和打分兩個(gè)決策,在生產(chǎn)環(huán)境中,核心調(diào)度策略包括資源調(diào)度、親和性調(diào)度、污點(diǎn)與容忍、拓?fù)浞植技s束等,本文介紹K8s Pod調(diào)度機(jī)制詳解(從理論到生成實(shí)戰(zhàn)指南),感興趣的朋友一起看看吧
    2025-03-03
  • Spark實(shí)現(xiàn)K-Means算法代碼示例

    Spark實(shí)現(xiàn)K-Means算法代碼示例

    這篇文章主要介紹了Spark實(shí)現(xiàn)K-Means算法代碼示例,簡(jiǎn)單介紹了K-Means算法及其原理,然后通過(guò)具體實(shí)例向大家展示了用spark實(shí)現(xiàn)K-Means算法,需要的朋友可以參考下。
    2017-10-10
  • 阿里云oss對(duì)象存儲(chǔ)使用詳細(xì)步驟

    阿里云oss對(duì)象存儲(chǔ)使用詳細(xì)步驟

    本文主要介紹了阿里云oss對(duì)象存儲(chǔ)使用詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 一文詳解如何高效查看k8s日志

    一文詳解如何高效查看k8s日志

    K8S是kubernetes的縮寫(xiě),是為解決容器服務(wù)編排而生的,在運(yùn)維K8S服務(wù)的過(guò)程中,經(jīng)常會(huì)遇到各種報(bào)錯(cuò)和診斷問(wèn)題,那么我們一般怎么查看K8S組件的日志,這篇文章主要給大家介紹了關(guān)于如何高效查看k8s日志的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • kubeadm?init快速搭建k8s源碼解析

    kubeadm?init快速搭建k8s源碼解析

    這篇文章主要為大家介紹了kubeadm?init快速搭建k8s源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • kubeadm部署k8s集群全過(guò)程

    kubeadm部署k8s集群全過(guò)程

    本文詳細(xì)描述了如何在VMware虛擬機(jī)上基于CentOS8操作系統(tǒng)搭建Kubernetes集群,包括環(huán)境準(zhǔn)備、Docker安裝、Kubernetes組件安裝、網(wǎng)絡(luò)插件配置以及KuboardUI的安裝和訪問(wèn)
    2025-01-01
  • Spark三種屬性配置方式詳解

    Spark三種屬性配置方式詳解

    有時(shí)間還是多學(xué)習(xí)知識(shí)比較好,這篇文章主要介紹了Spark三種屬性配置方式詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Kubernetes中使用PersistentVolume掛載云盤(pán)方式

    Kubernetes中使用PersistentVolume掛載云盤(pán)方式

    這篇文章主要介紹了Kubernetes中使用PersistentVolume掛載云盤(pán)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用kubeadm部署多節(jié)點(diǎn)集群

    使用kubeadm部署多節(jié)點(diǎn)集群

    這篇文章介紹了使用kubeadm部署多節(jié)點(diǎn)集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 阿里云ECS排查CPU數(shù)據(jù)分析

    阿里云ECS排查CPU數(shù)據(jù)分析

    這篇文章主要介紹了阿里云ECS排查CPU數(shù)據(jù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04

最新評(píng)論

连江县| 玛纳斯县| 云阳县| 黄冈市| 资阳市| 建始县| 金溪县| 黄平县| 桦南县| 海淀区| 华宁县| 沅江市| 巨野县| 唐山市| 台北县| 得荣县| 汶上县| 察隅县| 治多县| 徐水县| 隆林| 会昌县| 石柱| 青铜峡市| 天全县| 信宜市| 平潭县| 绍兴县| 灵川县| 嫩江县| 明光市| 犍为县| 沧州市| 福鼎市| 武定县| 仪陇县| 贵定县| 宣武区| 诸暨市| 禹州市| 芒康县|