新聞中心
一般配置提示

創(chuàng)新互聯(lián)建站專(zhuān)注于方城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),成都商城網(wǎng)站開(kāi)發(fā)。方城網(wǎng)站建設(shè)公司,為方城等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
- 定義配置時(shí),請(qǐng)指定最新的穩(wěn)定 API 版本。
- 在推送到集群之前,配置文件應(yīng)存儲(chǔ)在版本控制中。 這允許你在必要時(shí)快速回滾配置更改。 它還有助于集群重新創(chuàng)建和恢復(fù)。
- 使用 YAML 而不是 JSON 編寫(xiě)配置文件。雖然這些格式幾乎可以在所有場(chǎng)景中互換使用,但 YAML 往往更加用戶(hù)友好。
- 只要有意義,就將相關(guān)對(duì)象分組到一個(gè)文件中。 一個(gè)文件通常比幾個(gè)文件更容易管理。 請(qǐng)參閱 guestbook-all-in-one.yaml 文件作為此語(yǔ)法的示例。
- 另請(qǐng)注意,可以在目錄上調(diào)用許多?
kubectl?命令。 例如,你可以在配置文件的目錄中調(diào)用?kubectl apply?。 - 除非必要,否則不指定默認(rèn)值:簡(jiǎn)單的最小配置會(huì)降低錯(cuò)誤的可能性。
- 將對(duì)象描述放在注釋中,以便更好地進(jìn)行內(nèi)省。
“Naked” Pods 與 ReplicaSet,Deployment 和 Jobs
- 如果可能,不要使用獨(dú)立的 Pods(即,未綁定到 ReplicaSet 或 Deployment 的 Pod)。 如果節(jié)點(diǎn)發(fā)生故障,將不會(huì)重新調(diào)度獨(dú)立的 Pods。
Deployment 既可以創(chuàng)建一個(gè) ReplicaSet 來(lái)確保預(yù)期個(gè)數(shù)的 Pod 始終可用,也可以指定替換 Pod 的策略(例如 RollingUpdate)。 除了一些顯式的 ?restartPolicy: Never? 場(chǎng)景外,Deployment 通常比直接創(chuàng)建 Pod 要好得多。Job 也可能是合適的選擇。
服務(wù)
- 在創(chuàng)建相應(yīng)的后端工作負(fù)載(Deployment 或 ReplicaSet),以及在需要訪問(wèn)它的任何工作負(fù)載之前創(chuàng)建 服務(wù)。 當(dāng) Kubernetes 啟動(dòng)容器時(shí),它提供指向啟動(dòng)容器時(shí)正在運(yùn)行的所有服務(wù)的環(huán)境變量。 例如,如果存在名為 ?
foo?的服務(wù),則所有容器將在其初始環(huán)境中獲得以下變量。
FOO_SERVICE_HOST=
FOO_SERVICE_PORT=
這確實(shí)意味著在順序上的要求 - 必須在 ?Pod ?本身被創(chuàng)建之前創(chuàng)建 ?Pod ?想要訪問(wèn)的任何 ?Service?, 否則將環(huán)境變量不會(huì)生效。DNS 沒(méi)有此限制。
- 一個(gè)可選(盡管強(qiáng)烈推薦)的集群插件 是 DNS 服務(wù)器。DNS 服務(wù)器為新的 ?
Services?監(jiān)視 Kubernetes API,并為每個(gè)創(chuàng)建一組 DNS 記錄。 如果在整個(gè)集群中啟用了 DNS,則所有 Pods 應(yīng)該能夠自動(dòng)對(duì) ?Services?進(jìn)行名稱(chēng)解析。 - 除非絕對(duì)必要,否則不要為 Pod 指定 ?
hostPort?。 將 Pod 綁定到?hostPort?時(shí),它會(huì)限制 Pod 可以調(diào)度的位置數(shù),因?yàn)槊總€(gè) ??組合必須是唯一的。 如果你沒(méi)有明確指定 ?hostIP?和 ?protocol?,Kubernetes 將使用 ?0.0.0.0? 作為默認(rèn) ?hostIP?和 ?TCP?作為默認(rèn) ?protocol?。
如果你只需要訪問(wèn)端口以進(jìn)行調(diào)試,則可以使用 apiserver proxy或 kubectl port-forward。
如果你明確需要在節(jié)點(diǎn)上公開(kāi) Pod 的端口,請(qǐng)?jiān)谑褂?nbsp;?hostPort ?之前考慮使用 NodePort 服務(wù)。
- 避免使用 ?
hostNetwork?,原因與 ?hostPort?相同。 - 當(dāng)你不需要 ?
kube-proxy? 負(fù)載均衡時(shí),使用 無(wú)頭服務(wù)(?ClusterIP?被設(shè)置為 ?None?)以便于服務(wù)發(fā)現(xiàn)。
使用標(biāo)簽
- 定義并使用標(biāo)簽來(lái)識(shí)別應(yīng)用程序 或 Deployment 的 語(yǔ)義屬性,例如?
{ app: myapp, tier: frontend, phase: test, deployment: v3 }?。 你可以使用這些標(biāo)簽為其他資源選擇合適的 Pod; 例如,一個(gè)選擇所有 ?tier: frontend? Pod 的服務(wù),或者 ?app: myapp? 的所有 ?phase: test? 組件。 有關(guān)此方法的示例,請(qǐng)參閱 guestbook 。
通過(guò)從選擇器中省略特定發(fā)行版的標(biāo)簽,可以使服務(wù)跨越多個(gè) Deployment。 當(dāng)你需要不停機(jī)的情況下更新正在運(yùn)行的服務(wù),可以使用Deployment。
Deployment 描述了對(duì)象的期望狀態(tài),并且如果對(duì)該規(guī)范的更改被成功應(yīng)用, 則 Deployment 控制器以受控速率將實(shí)際狀態(tài)改變?yōu)槠谕麪顟B(tài)。
- 對(duì)于常見(jiàn)場(chǎng)景,應(yīng)使用 Kubernetes 通用標(biāo)簽。 這些標(biāo)準(zhǔn)化的標(biāo)簽豐富了對(duì)象的元數(shù)據(jù),使得包括 ?
kubectl?和 儀表板(Dashboard) 這些工具能夠以可互操作的方式工作。 - 你可以操縱標(biāo)簽進(jìn)行調(diào)試。 由于 Kubernetes 控制器(例如 ReplicaSet)和服務(wù)使用選擇器標(biāo)簽來(lái)匹配 Pod, 從 Pod 中刪除相關(guān)標(biāo)簽將阻止其被控制器考慮或由服務(wù)提供服務(wù)流量。 如果刪除現(xiàn)有 Pod 的標(biāo)簽,其控制器將創(chuàng)建一個(gè)新的 Pod 來(lái)取代它。 這是在"隔離"環(huán)境中調(diào)試先前"活躍"的 Pod 的有用方法。 要以交互方式刪除或添加標(biāo)簽,請(qǐng)使用 kubectl label。
使用 kubectl
- 使用 ?
kubectl apply -f?。 它在 ?? 中的所有 ?.yaml?、?.yml? 和 ?.json? 文件中查找 Kubernetes 配置,并將其傳遞給 ?apply?。 - 使用標(biāo)簽選擇器進(jìn)行 ?
get?和 ?delete?操作,而不是特定的對(duì)象名稱(chēng)。 - 使用?
kubectl run?和?kubectl expose?來(lái)快速創(chuàng)建單容器部署和服務(wù)。
網(wǎng)站欄目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes配置最佳實(shí)踐
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/cdjhsgd.html


咨詢(xún)
建站咨詢(xún)
