日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes在集群中使用級(jí)聯(lián)刪除

在集群中使用級(jí)聯(lián)刪除

本頁(yè)面向你展示如何設(shè)置在你的集群執(zhí)行垃圾收集 時(shí)要使用的級(jí)聯(lián)刪除 類型。

在開始之前

你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:

  • Katacoda
  • 玩轉(zhuǎn) Kubernetes

你還需要?jiǎng)?chuàng)建一個(gè) Deployment 示例 以試驗(yàn)不同類型的級(jí)聯(lián)刪除。你需要為每種級(jí)聯(lián)刪除類型來重建 Deployment。

檢查 Pod 上的屬主引用 

檢查確認(rèn)你的 Pods 上存在 ?ownerReferences ?字段:

kubectl get pods -l app=nginx --output=yaml

輸出中包含 ?ownerReferences ?字段,類似這樣:

apiVersion: v1
    ...
    ownerReferences:
    - apiVersion: apps/v1
      blockOwnerDeletion: true
      controller: true
      kind: ReplicaSet
      name: nginx-deployment-6b474476c4
      uid: 4fdcd81c-bd5d-41f7-97af-3a3b759af9a7
    ...

使用前臺(tái)級(jí)聯(lián)刪除 

默認(rèn)情況下,Kubernetes 使用后臺(tái)級(jí)聯(lián)刪除 以刪除依賴某對(duì)象的其他對(duì)象。取決于你的集群所運(yùn)行的 Kubernetes 版本, 你可以使用 kubectl 或者 Kubernetes API 來切換到前臺(tái)級(jí)聯(lián)刪除。要檢查版本,請(qǐng)輸入 ?kubectl version?。

  • Kubernetes 1.20.x 及更新版本
  • 你可以使用 ?kubectl ?或者 Kubernetes API 來基于前臺(tái)級(jí)聯(lián)刪除來刪除對(duì)象。

    使用 kubectl

    運(yùn)行下面的命令:

    kubectl delete deployment nginx-deployment --cascade=foreground
    

    使用 Kubernetes API

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Foreground"}' \
          -H "Content-Type: application/json"

      輸出中包含 ?foregroundDeletion ?finalizer, 類似這樣:

      "kind": "Deployment",
      "apiVersion": "apps/v1",
      "metadata": {
          "name": "nginx-deployment",
          "namespace": "default",
          "uid": "d1ce1b02-cae8-4288-8a53-30e84d8fa505",
          "resourceVersion": "1363097",
          "creationTimestamp": "2021-07-08T20:24:37Z",
          "deletionTimestamp": "2021-07-08T20:27:39Z",
          "finalizers": [
            "foregroundDeletion"
          ]
          ...
  • Kubernetes 1.20.x 之前的版本
  • 你可以通過調(diào)用 Kubernetes API 來基于前臺(tái)級(jí)聯(lián)刪除模式刪除對(duì)象。

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Foreground"}' \
          -H "Content-Type: application/json"

      輸出中包含 ?foregroundDeletion ?finalizer, 類似這樣:

      "kind": "Deployment",
      "apiVersion": "apps/v1",
      "metadata": {
          "name": "nginx-deployment",
          "namespace": "default",
          "uid": "d1ce1b02-cae8-4288-8a53-30e84d8fa505",
          "resourceVersion": "1363097",
          "creationTimestamp": "2021-07-08T20:24:37Z",
          "deletionTimestamp": "2021-07-08T20:27:39Z",
          "finalizers": [
            "foregroundDeletion"
          ]
          ...

使用后臺(tái)級(jí)聯(lián)刪除

  1. 創(chuàng)建一個(gè) Deployment 示例。
  2. 基于你的集群所運(yùn)行的 Kubernetes 版本,使用 ?kubectl ?或者 Kubernetes API 來刪除 Deployment。要檢查版本,請(qǐng)輸入 ?kubectl version?。
  • Kubernetes 1.20.x 及更新版本
  • 你可以使用 ?kubectl ?或者 Kubernetes API 來執(zhí)行后臺(tái)級(jí)聯(lián)刪除方式的對(duì)象刪除操作。

    Kubernetes 默認(rèn)采用后臺(tái)級(jí)聯(lián)刪除方式,如果你在運(yùn)行下面的命令時(shí)不指定 ?--cascade? 標(biāo)志或者 ?propagationPolicy ?參數(shù)時(shí),用這種方式來刪除對(duì)象。

    使用 kubectl

    運(yùn)行下面的命令:

    kubectl delete deployment nginx-deployment --cascade=background
    

    使用 Kubernetes API

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Background"}' \
          -H "Content-Type: application/json"

      輸出類似于:

      "kind": "Status",
      "apiVersion": "v1",
      ...
      "status": "Success",
      "details": {
          "name": "nginx-deployment",
          "group": "apps",
          "kind": "deployments",
          "uid": "cc9eefb9-2d49-4445-b1c1-d261c9396456"
      }
  • Kubernetes 1.20.x 之前的版本
  • Kubernetes 默認(rèn)采用后臺(tái)級(jí)聯(lián)刪除方式,如果你在運(yùn)行下面的命令時(shí)不指定 ?--cascade? 標(biāo)志或者 ?propagationPolicy ?參數(shù)時(shí),用這種方式來刪除對(duì)象。

    使用 kubectl

    運(yùn)行下面的命令:

    kubectl delete deployment nginx-deployment --cascade=true
    

    使用 Kubernetes API

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Background"}' \
          -H "Content-Type: application/json"

      輸出類似于:

      "kind": "Status",
      "apiVersion": "v1",
      ...
      "status": "Success",
      "details": {
          "name": "nginx-deployment",
          "group": "apps",
          "kind": "deployments",
          "uid": "cc9eefb9-2d49-4445-b1c1-d261c9396456"
      }

刪除屬主對(duì)象和孤立的依賴對(duì)象 

默認(rèn)情況下,當(dāng)你告訴 Kubernetes 刪除某個(gè)對(duì)象時(shí), 控制器 也會(huì)刪除依賴該對(duì)象 的其他對(duì)象。 取決于你的集群所運(yùn)行的 Kubernetes 版本,你也可以使用 ?kubectl ?或者 Kubernetes API 來讓 Kubernetes 孤立 這些依賴對(duì)象。要檢查版本,請(qǐng)輸入 ?kubectl version?。

  • Kubernetes 1.20.x 及更新版本
  • 使用 kubectl

    運(yùn)行下面的命令:

    kubectl delete deployment nginx-deployment --cascade=orphan
    

    使用 Kubernetes API

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Orphan"}' \
          -H "Content-Type: application/json"

      輸出中在 ?finalizers ?字段中包含 ?orphan?,如下所示:

      "kind": "Deployment",
      "apiVersion": "apps/v1",
      "namespace": "default",
      "uid": "6f577034-42a0-479d-be21-78018c466f1f",
      "creationTimestamp": "2021-07-09T16:46:37Z",
      "deletionTimestamp": "2021-07-09T16:47:08Z",
      "deletionGracePeriodSeconds": 0,
      "finalizers": [
        "orphan"
      ],
      ...
  • Kubernetes 1.20.x 之前的版本
  • 使用 kubectl

    運(yùn)行下面的命令:

    kubectl delete deployment nginx-deployment --cascade=orphan
    

    使用 Kubernetes API

    1. 啟動(dòng)一個(gè)本地代理會(huì)話:
    2. kubectl proxy --port=8080
      
    3. 使用 ?curl ?來觸發(fā)刪除操作:
    4. curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/deployments/nginx-deployment \
          -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Orphan"}' \
          -H "Content-Type: application/json"

      輸出中在 ?finalizers ?字段中包含 ?orphan?,如下所示:

      "kind": "Deployment",
      "apiVersion": "apps/v1",
      "namespace": "default",
      "uid": "6f577034-42a0-479d-be21-78018c466f1f",
      "creationTimestamp": "2021-07-09T16:46:37Z",
      "deletionTimestamp": "2021-07-09T16:47:08Z",
      "deletionGracePeriodSeconds": 0,
      "finalizers": [
        "orphan"
      ],
      ...

你可以檢查 Deployment 所管理的 Pods 仍然處于運(yùn)行狀態(tài):

kubectl get pods -l app=nginx

網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes在集群中使用級(jí)聯(lián)刪除
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dhiepeh.html