国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

利用 Kubernetes Service 的 selector 無痛運維在線 pod

DandJ / 3479人閱讀

摘要:假設服務異常,我們需要對其進行維護。因為根據它的選擇器發現它需要啟動另一個進入維護狀態的不再匹配的選擇器導致符合要求的數量不及設定的數量。我們注意到,正在維護的已經不在端點上了。鑒于這些原因,我建議同樣也要將拿出來,并且用來啟動一個替代的。

Kubernetes 有一個叫做 service 的功能,這個功能為 pod 提供負載均衡器的服務。當 pod 運行出現錯誤,或者停止工作的時候,有時候你想要從 service 上刪除 pod 而不終止 pod。

Service&Endpoints

這個端點清單會自動更新 IP 地址和端口。因為對應的 pod 是根據定義在 service 上的標簽選擇器被選擇出來的。這也就意味著 service 可以很輕松地跟 pod 本身結合。大家也可以看到選擇器模式已經被運用到很多其它 Kubernetes 組件了,比如 Deployment,ReplicaSet。

由于端點清單是基于標簽選擇器自動更新的,所以我們通過更新在 pod 上的標簽將行為異常的 pod 拿走,這樣的話它就不會跟選擇器匹配了。為了能夠更新 service,將 pod 從中移除,我們需要一個良好設計的標簽選擇器。

所以,首先我們需要添加一個標簽,這樣就可以將任意 pod 從 service 中拿出來了。
現在讓我們用 enabled 標簽來創建一個 Deployment:

在我們的 service 中,我們在選擇器中使用這些標簽:

之后,創建我們的 Deployment 和 service,這個過程中,這些 pod 是保持運行的。

在這里,也是可以列出端點的。

假設 pod nginx-1802606028-1posu 服務異常,我們需要對其進行維護。首先讓我們得到它的 pod IP。

現在,為了對 pod 進行維護,我們把 enabled 標簽修改成除了“true”的其它東西。我們需要輸入--overwrite 標志來強制更新已經存在的標簽。

如果我們再次檢查端點,我們就會注意到我們還是有兩個端點。因為 Deployment 根據它的選擇器發現它需要啟動另一個 pod (進入維護狀態的 pod 不再匹配 Deployment 的選擇器導致符合要求的 pod 數量不及設定的數量)。

我們注意到,正在維護的 pod 已經不在端點上了。

現在我們可以對我們的 pod 進行維護。

維護

每個應用程序維護 pod 的方式都是不一樣的,所以我在這里就不做深入了。然而,Kubernetes 很多功能都可以輕松連接到運行在你集群里的應用程序,所以在這里我簡要描述一下。

kubectl attach

你可以連接到一個正在運行的 pod,通過標準輸入發送數據,從標準輸出獲得調試信息。如果你的進程允許你在 stdin 上發送命令來獲得關于內部狀態的信息的話。但是,有些容器并不會創建 TTY。你能看到的是 stdout,這跟只使用 kubectl logs 差別不大。

kubectl exec

kubectl exec 意味著你可以在容器中執行命令。你可以使用它來做很多事情,可能要使用它來發送信號給容器中的進程。

或者,你可以開啟一個 bash shell,如果你安裝了 bash 的話。

kubectl port-forward

另一個有用的功能就是 port forward 了。我們可以用這個來轉移本地端口到我們的 pod,這樣的話我們就可以給它發送請求,并且看到它是如何回應的。

接著,我們就可以從另一個終端給它發送請求。

總結

標簽選擇器令維護 pod 變得容易。但是還是有些細節需要你注意一下的。

Service和Deployments

由于 Service 和 Deployment 都經常使用標簽選擇器,所以當你將一個 pod 從 service 中移除,它仍然可能是 Deployment 的一部分,這種情況也是可能的。在大多數情況下,這都是 OK 的,但是如果你有一個 Deployment,帶有 HorizontalPodAutoscaler 的功能,那么 Deployment 久可能任意時刻縮容而刪除你的 pod。同樣,當單個的 pod 從 service 中拿出來的時候,它仍然可能對你的應用程序產生影響。鑒于這些原因,我建議同樣也要將 Deployment 拿出來,并且用 Deployment 來啟動一個替代的 pod。

將 Pods 放回到 Service

在我們的 pod 上完成維護之后,我們可能就想要把它放回到 service。這個可以通過再次更新標簽來匹配 service 選擇器。

這種維護方案對于 Petset 當中的 pod 或者是不能輕易重啟的 pod 是一個很好的方法。但是如果我們使用 Deployment 的話,因為這些 pod 本身作為分片存在于整個 Deployment 中,并且這些 pod 在定義上就是可替換的,我們通常只需要簡單地刪除這個被維護的 pod。即使將它回添到 Deployment,這個 Deployment 也會注意到多了一個 pod,而刪除其中的一個 pod。

如果你將這些注意事項,那在生產環境調試某個特定的 pod 將會是一個相對簡單的過程。

原文鏈接

轉載聯系我們-3-

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/32517.html

相關文章

  • 華爾街見聞基于istio服務網格實踐

    摘要:,托管于騰訊云容器平臺容器編排工具。適配我們目前的服務部署在騰訊云托管,節點使用核的網絡增強型機器,所有的后端服務都以部署,集群外部署高可用支持集群內服務發現,數據庫以為主,消息隊列采用。 距離2017年的見聞技術架構調整接近2年,隨著業務線的發展,見聞技術部的項目數量、項目架構類型、基礎設施規模、服務變更頻率都在不斷地增長,帶給SRE的挑戰是如何能更快地助力于開發人員更快更穩定地部署...

    stonezhu 評論0 收藏0
  • 使用 Kubernetes 部署一個記事本項目

    摘要:簡稱,是在年發布的一個開源項目。網絡要能夠通信,必須部署網絡,是其中一個可選方案。最常使用,可以管理多個副本,并確保按照期望的狀態運行,底層調用。用于每個最多只運行一個副本的場景。 Kubernetes 簡稱 k8s,是 google 在 2014 年發布的一個開源項目。 Kubernetes 解決了哪些問題? 真實的生產環境應用會包含多個容器,而這些容器還很可能會跨越多個服務器主機部...

    null1145 評論0 收藏0
  • Kubernetes 如何打贏容器之戰?

    摘要:此時,一些聰明的技術公司紛紛跟進,推出了自家的容器集群管理項目,并且稱之為。容器是完全使用沙箱機制,相互之間不會有任何接口。管理集群的所有行為例如應用調度改變應用的狀態,擴縮容,更新降級應用等。 showImg(https://segmentfault.com/img/remote/1460000018689306); 阿里妹導讀:Kubernetes 近幾年很熱門,在各大技術論壇上被...

    shiguibiao 評論0 收藏0
  • 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群

    摘要:管理其下控制的的生命周期,保證指定數量的正常運行。青云在國內是獨樹一幟,特別適合用來部署這種分布式應用。其中,是提供的命令行工具,可在任何被管理的機器上運行。這里嘗試用命令行工具檢查下集群狀態。 一、Kubernetes概述 Kubernetes是Google一直在推進的容器調度和管理系統,是Google內部使用的容器管理系統Borg的開源版本。它可以實現對Docker容器的部署,配置...

    psychola 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<