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

資訊專(zhuān)欄INFORMATION COLUMN

利用 Kubernetes Service 的 selector 無(wú)痛運(yùn)維在線 pod

DandJ / 3476人閱讀

摘要:假設(shè)服務(wù)異常,我們需要對(duì)其進(jìn)行維護(hù)。因?yàn)楦鶕?jù)它的選擇器發(fā)現(xiàn)它需要啟動(dòng)另一個(gè)進(jìn)入維護(hù)狀態(tài)的不再匹配的選擇器導(dǎo)致符合要求的數(shù)量不及設(shè)定的數(shù)量。我們注意到,正在維護(hù)的已經(jīng)不在端點(diǎn)上了。鑒于這些原因,我建議同樣也要將拿出來(lái),并且用來(lái)啟動(dòng)一個(gè)替代的。

Kubernetes 有一個(gè)叫做 service 的功能,這個(gè)功能為 pod 提供負(fù)載均衡器的服務(wù)。當(dāng) pod 運(yùn)行出現(xiàn)錯(cuò)誤,或者停止工作的時(shí)候,有時(shí)候你想要從 service 上刪除 pod 而不終止 pod。

Service&Endpoints

這個(gè)端點(diǎn)清單會(huì)自動(dòng)更新 IP 地址和端口。因?yàn)閷?duì)應(yīng)的 pod 是根據(jù)定義在 service 上的標(biāo)簽選擇器被選擇出來(lái)的。這也就意味著 service 可以很輕松地跟 pod 本身結(jié)合。大家也可以看到選擇器模式已經(jīng)被運(yùn)用到很多其它 Kubernetes 組件了,比如 Deployment,ReplicaSet。

由于端點(diǎn)清單是基于標(biāo)簽選擇器自動(dòng)更新的,所以我們通過(guò)更新在 pod 上的標(biāo)簽將行為異常的 pod 拿走,這樣的話它就不會(huì)跟選擇器匹配了。為了能夠更新 service,將 pod 從中移除,我們需要一個(gè)良好設(shè)計(jì)的標(biāo)簽選擇器。

所以,首先我們需要添加一個(gè)標(biāo)簽,這樣就可以將任意 pod 從 service 中拿出來(lái)了。
現(xiàn)在讓我們用 enabled 標(biāo)簽來(lái)創(chuàng)建一個(gè) Deployment:

在我們的 service 中,我們?cè)谶x擇器中使用這些標(biāo)簽:

之后,創(chuàng)建我們的 Deployment 和 service,這個(gè)過(guò)程中,這些 pod 是保持運(yùn)行的。

在這里,也是可以列出端點(diǎn)的。

假設(shè) pod nginx-1802606028-1posu 服務(wù)異常,我們需要對(duì)其進(jìn)行維護(hù)。首先讓我們得到它的 pod IP。

現(xiàn)在,為了對(duì) pod 進(jìn)行維護(hù),我們把 enabled 標(biāo)簽修改成除了“true”的其它東西。我們需要輸入--overwrite 標(biāo)志來(lái)強(qiáng)制更新已經(jīng)存在的標(biāo)簽。

如果我們?cè)俅螜z查端點(diǎn),我們就會(huì)注意到我們還是有兩個(gè)端點(diǎn)。因?yàn)?Deployment 根據(jù)它的選擇器發(fā)現(xiàn)它需要啟動(dòng)另一個(gè) pod (進(jìn)入維護(hù)狀態(tài)的 pod 不再匹配 Deployment 的選擇器導(dǎo)致符合要求的 pod 數(shù)量不及設(shè)定的數(shù)量)。

我們注意到,正在維護(hù)的 pod 已經(jīng)不在端點(diǎn)上了。

現(xiàn)在我們可以對(duì)我們的 pod 進(jìn)行維護(hù)。

維護(hù)

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

kubectl attach

你可以連接到一個(gè)正在運(yùn)行的 pod,通過(guò)標(biāo)準(zhǔn)輸入發(fā)送數(shù)據(jù),從標(biāo)準(zhǔn)輸出獲得調(diào)試信息。如果你的進(jìn)程允許你在 stdin 上發(fā)送命令來(lái)獲得關(guān)于內(nèi)部狀態(tài)的信息的話。但是,有些容器并不會(huì)創(chuàng)建 TTY。你能看到的是 stdout,這跟只使用 kubectl logs 差別不大。

kubectl exec

kubectl exec 意味著你可以在容器中執(zhí)行命令。你可以使用它來(lái)做很多事情,可能要使用它來(lái)發(fā)送信號(hào)給容器中的進(jìn)程。

或者,你可以開(kāi)啟一個(gè) bash shell,如果你安裝了 bash 的話。

kubectl port-forward

另一個(gè)有用的功能就是 port forward 了。我們可以用這個(gè)來(lái)轉(zhuǎn)移本地端口到我們的 pod,這樣的話我們就可以給它發(fā)送請(qǐng)求,并且看到它是如何回應(yīng)的。

接著,我們就可以從另一個(gè)終端給它發(fā)送請(qǐng)求。

總結(jié)

標(biāo)簽選擇器令維護(hù) pod 變得容易。但是還是有些細(xì)節(jié)需要你注意一下的。

Service和Deployments

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

將 Pods 放回到 Service

在我們的 pod 上完成維護(hù)之后,我們可能就想要把它放回到 service。這個(gè)可以通過(guò)再次更新標(biāo)簽來(lái)匹配 service 選擇器。

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

如果你將這些注意事項(xiàng),那在生產(chǎn)環(huán)境調(diào)試某個(gè)特定的 pod 將會(huì)是一個(gè)相對(duì)簡(jiǎn)單的過(guò)程。

原文鏈接

轉(zhuǎn)載聯(lián)系我們-3-

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/32517.html

相關(guān)文章

  • 華爾街見(jiàn)聞基于istio服務(wù)網(wǎng)格實(shí)踐

    摘要:,托管于騰訊云容器平臺(tái)容器編排工具。適配我們目前的服務(wù)部署在騰訊云托管,節(jié)點(diǎn)使用核的網(wǎng)絡(luò)增強(qiáng)型機(jī)器,所有的后端服務(wù)都以部署,集群外部署高可用支持集群內(nèi)服務(wù)發(fā)現(xiàn),數(shù)據(jù)庫(kù)以為主,消息隊(duì)列采用。 距離2017年的見(jiàn)聞技術(shù)架構(gòu)調(diào)整接近2年,隨著業(yè)務(wù)線的發(fā)展,見(jiàn)聞技術(shù)部的項(xiàng)目數(shù)量、項(xiàng)目架構(gòu)類(lèi)型、基礎(chǔ)設(shè)施規(guī)模、服務(wù)變更頻率都在不斷地增長(zhǎng),帶給SRE的挑戰(zhàn)是如何能更快地助力于開(kāi)發(fā)人員更快更穩(wěn)定地部署...

    stonezhu 評(píng)論0 收藏0
  • 使用 Kubernetes 部署一個(gè)記事本項(xiàng)目

    摘要:簡(jiǎn)稱(chēng),是在年發(fā)布的一個(gè)開(kāi)源項(xiàng)目。網(wǎng)絡(luò)要能夠通信,必須部署網(wǎng)絡(luò),是其中一個(gè)可選方案。最常使用,可以管理多個(gè)副本,并確保按照期望的狀態(tài)運(yùn)行,底層調(diào)用。用于每個(gè)最多只運(yùn)行一個(gè)副本的場(chǎng)景。 Kubernetes 簡(jiǎn)稱(chēng) k8s,是 google 在 2014 年發(fā)布的一個(gè)開(kāi)源項(xiàng)目。 Kubernetes 解決了哪些問(wèn)題? 真實(shí)的生產(chǎn)環(huán)境應(yīng)用會(huì)包含多個(gè)容器,而這些容器還很可能會(huì)跨越多個(gè)服務(wù)器主機(jī)部...

    null1145 評(píng)論0 收藏0
  • Kubernetes 如何打贏容器之戰(zhàn)?

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

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

    摘要:管理其下控制的的生命周期,保證指定數(shù)量的正常運(yùn)行。青云在國(guó)內(nèi)是獨(dú)樹(shù)一幟,特別適合用來(lái)部署這種分布式應(yīng)用。其中,是提供的命令行工具,可在任何被管理的機(jī)器上運(yùn)行。這里嘗試用命令行工具檢查下集群狀態(tài)。 一、Kubernetes概述 Kubernetes是Google一直在推進(jìn)的容器調(diào)度和管理系統(tǒng),是Google內(nèi)部使用的容器管理系統(tǒng)Borg的開(kāi)源版本。它可以實(shí)現(xiàn)對(duì)Docker容器的部署,配置...

    psychola 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<