日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

創(chuàng)建無狀態(tài)工作負(fù)載Deployment

更新時(shí)間:

無狀態(tài)工作負(fù)載不會(huì)保存任何數(shù)據(jù)或狀態(tài),例如Nginx。您可以通過鏡像、編排模板及命令行創(chuàng)建一個(gè)無狀態(tài)應(yīng)用。通過私有鏡像創(chuàng)建應(yīng)用時(shí),您還可以通過容器服務(wù)控制臺為私有鏡像設(shè)置密鑰,以確保鏡像安全。本文以Nginx為例介紹如何通過鏡像、編排模板以及命令創(chuàng)建無狀態(tài)應(yīng)用。

前提條件

使用鏡像創(chuàng)建無狀態(tài)Deployment應(yīng)用

步驟一:配置應(yīng)用基本信息

  1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群

  2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇工作負(fù)載 > 無狀態(tài)

  3. 無狀態(tài)頁面,單擊使用鏡像創(chuàng)建

  4. 應(yīng)用基本信息配置向?qū)ы撁妫O(shè)置應(yīng)用的基本信息。

    在配置Deployment負(fù)載之前,您需要在頁面頂部設(shè)置應(yīng)用所在的命名空間。本例中設(shè)置命名空間為default,應(yīng)用類型為無狀態(tài)(Deployment)

    配置項(xiàng)

    描述

    應(yīng)用名稱

    應(yīng)用的名稱。

    副本數(shù)量

    即應(yīng)用包含的Pod數(shù)量,默認(rèn)數(shù)量為2。

    類型

    定義資源對象的類型,可選擇無狀態(tài)(Deployment)有狀態(tài)(StatefulSet)任務(wù)(Job)定時(shí)任務(wù)(CronJob)守護(hù)進(jìn)程集(DaemonSet)

    標(biāo)簽

    為該應(yīng)用添加一個(gè)標(biāo)簽,標(biāo)識該應(yīng)用。

    注解

    為該應(yīng)用添加一個(gè)注解(Annotation)。

    時(shí)區(qū)同步

    容器與節(jié)點(diǎn)是否使用相同的時(shí)區(qū)。

  5. 單擊下一步,進(jìn)入容器配置向?qū)ы撁妗?/span>

步驟二:配置容器

容器配置向?qū)ы撁妫渲萌萜鞯溺R像、資源、端口、環(huán)境變量、健康檢查、生命周期、數(shù)據(jù)卷和日志。

說明

容器1頁簽右側(cè),單擊添加容器可以為應(yīng)用的Pod設(shè)置多個(gè)容器。

  1. 基本配置區(qū)域,完成容器的基本配置。

    參數(shù)

    描述

    鏡像名稱

    • 選擇鏡像

      您可以單擊選擇鏡像,選擇所需的鏡像。支持選擇以下三種類型的鏡像。

      • 容器鏡像服務(wù)企業(yè)版:可以選擇托管在容器鏡像服務(wù)ACR中的企業(yè)版鏡像。需要選擇鏡像所屬地域,以及鏡像服務(wù)實(shí)例。關(guān)于ACR的更多信息,請參見什么是容器鏡像服務(wù)ACR

      • 容器鏡像服務(wù)個(gè)人版:可以選擇托管在容器鏡像服務(wù)ACR中的個(gè)人版鏡像。需要選擇鏡像所屬地域,以及鏡像服務(wù)實(shí)例。

      • 制品中心:包含應(yīng)用容器化基礎(chǔ)OS鏡像、基礎(chǔ)語言鏡像、AI/大數(shù)據(jù)相關(guān)鏡像,本示例以制品中心的Nginx鏡像為例說明。關(guān)于制品中心的更多信息,請參見制品中心

        說明

        容器鏡像服務(wù)ACR提供制品中心便于您的基礎(chǔ)鏡像使用,這些基礎(chǔ)鏡像由阿里云或者龍蜥社區(qū)做版本更新及安全修復(fù)。如果您有額外的鏡像需求或者問題,請加入釘釘群33605007047進(jìn)行咨詢。

      您還可以填寫私有鏡像。填寫的格式為domainname/namespace/imagename:tag

    • 選擇鏡像拉取策略

      ACK支持以下三種鏡像拉取策略(imagePullPolicy):

      • 優(yōu)先使用本地鏡像(IfNotPresent):如果本地有該鏡像(之前拉取過該鏡像至宿主機(jī)中),則使用本地鏡像,本地不存在時(shí)拉取鏡像。

      • 總是拉取鏡像(Always):表示每次部署或擴(kuò)容都會(huì)從容器鏡像服務(wù)重新拉取鏡像,而不會(huì)從本地拉取鏡像。

      • 僅使用本地鏡像(Never):僅使用本地鏡像。

      說明

      當(dāng)您選中鏡像拉取策略時(shí),默認(rèn)不設(shè)置鏡像拉取策略。

    • 設(shè)置鏡像密鑰

      您可以單擊設(shè)置鏡像密鑰,為私有鏡像設(shè)置密鑰以確保安全。

      • 對于ACR個(gè)人版實(shí)例,您可以通過設(shè)置鏡像密鑰的方式拉取容器鏡像。設(shè)置密鑰的更多信息,請參見創(chuàng)建保密字典

      • 對于ACR企業(yè)版實(shí)例,您可以通過免密組件拉取鏡像。具體操作,請參見使用免密組件拉取容器鏡像

    資源限制

    可指定該應(yīng)用所能使用的資源上限,包括CPU、內(nèi)存和Ephemeral-Storage三種資源,以防止占用過多資源。關(guān)于設(shè)置資源限制的更多信息,請參見資源畫像

    所需資源

    為該應(yīng)用預(yù)留資源額度,包括CPU、內(nèi)存和Ephemeral-Storage三種資源,即容器獨(dú)占這些資源,防止因資源不足而被其他服務(wù)或進(jìn)程爭奪資源,導(dǎo)致應(yīng)用不可用。關(guān)于設(shè)置所需資源的更多信息,請參見資源畫像

    容器啟動(dòng)項(xiàng)

    • stdin:表示為該容器開啟標(biāo)準(zhǔn)輸入。

    • tty:表示為該容器分配一個(gè)虛擬終端,以便于向容器發(fā)送信號。

    通常這兩個(gè)選項(xiàng)是一起使用的,表示將終端(tty)綁定到容器的標(biāo)準(zhǔn)輸入(stdin)上。例如,一個(gè)交互式的程序從用戶獲取標(biāo)準(zhǔn)輸入,并顯示到終端中。

    特權(quán)容器

    • 選擇特權(quán)容器,則privileged=true,開啟特權(quán)模式。

    • 不選擇特權(quán)容器,則privileged=false,關(guān)閉特權(quán)模式。

    初始化容器

    選中該選項(xiàng),表示創(chuàng)建一個(gè)初始化容器。

    初始化容器提供了一種機(jī)制來阻塞或延遲應(yīng)用容器的啟動(dòng),初始化容器執(zhí)行成功后,Pod內(nèi)的應(yīng)用容器會(huì)并行啟動(dòng)。例如,檢測依賴服務(wù)的可用性。初始化容器可以包括一些應(yīng)用鏡像中不存在的實(shí)用工具和安裝腳本,用來初始化應(yīng)用容器的運(yùn)行環(huán)境,例如設(shè)置內(nèi)核參數(shù)、生成配置文件。更多信息,請參見Init Containers

  2. 可選:端口設(shè)置區(qū)域,單擊新增設(shè)置容器的端口。

    參數(shù)

    描述

    名稱

    設(shè)置容器端口名稱。

    容器端口

    設(shè)置暴露的容器訪問端口或端口名,端口號必須介于1~65535。

    協(xié)議

    支持TCP和UDP。

  3. 可選:環(huán)境變量區(qū)域,單擊新增設(shè)置環(huán)境變量。

    支持通過鍵值對的形式為Pod配置環(huán)境變量。用于給Pod添加環(huán)境標(biāo)志或傳遞配置等,具體操作,請參見Pod variable

    參數(shù)

    描述

    類型

    設(shè)置環(huán)境變量的類型,支持以下類型:

    • 自定義

    • 配置項(xiàng)

    • 保密字典

    • 變量/變量引用

    • 資源引用

    配置項(xiàng)、保密字典支持對全部文件的引用,以保密字典為例。選擇保密字典類型,只選擇目標(biāo)保密字典,則默認(rèn)引用全部文件。環(huán)境變量

    對應(yīng)的YAML,也引用了整個(gè)密鑰(Secret)。yaml

    選擇資源引用,主要使用resourceFieldRef參數(shù),從Pod規(guī)范中引用容器已經(jīng)聲明的資源值,然后將這些值作為環(huán)境變量傳遞給容器。對應(yīng)的YAML如下:

    image

    變量名稱

    設(shè)置環(huán)境變量名稱。

    變量/變量引用

    設(shè)置變量引用的值。

  4. 可選:健康檢查區(qū)域,根據(jù)需要開啟存活檢查就緒檢查啟動(dòng)探測

    更多信息,請參見配置存活、就緒和啟動(dòng)探測器

    參數(shù)

    請求類型

    配置說明

    • 存活檢查(Liveness):用于檢測何時(shí)重啟容器。

    • 就緒檢查(Readiness):確定容器是否已經(jīng)就緒,且可以接受流量。

    • 啟動(dòng)探測(Startup Probes):用于檢測何時(shí)啟動(dòng)容器。

      說明

      僅Kubernetes集群1.18及之后版本支持啟動(dòng)探測。

    HTTP請求

    即向容器發(fā)送一個(gè)HTTP GET請求,支持的參數(shù)包括:

    • 協(xié)議HTTP/HTTPS

    • 路徑:訪問HTTP Server的路徑。

    • 端口:容器暴露的訪問端口或端口名,端口號必須介于1~65535。

    • Http頭:即HTTP Headers,HTTP請求中自定義的請求頭,HTTP允許重復(fù)的Header。支持鍵值對的配置方式。

    • 延遲探測時(shí)間(秒):即initialDelaySeconds,容器啟動(dòng)后第一次執(zhí)行探測時(shí)需要等待多少秒,默認(rèn)為3秒。

    • 執(zhí)行探測頻率(秒):即periodSeconds,指執(zhí)行探測的時(shí)間間隔,默認(rèn)為10秒,最小為1秒。

    • 超時(shí)時(shí)間(秒):即timeoutSeconds,探測超時(shí)時(shí)間。默認(rèn)1秒,最小1秒。

    • 健康閾值:探測失敗后,最少連續(xù)探測成功多少次才被認(rèn)定為成功。默認(rèn)是1,最小值是1。對于存活檢查(liveness)必須是1。

    • 不健康閾值:探測成功后,最少連續(xù)探測失敗多少次才被認(rèn)定為失敗。默認(rèn)是3,最小值是1。

    TCP連接

    即向容器發(fā)送一個(gè)TCP Socket,Kubelet將嘗試在指定端口上打開容器的套接字。如果可以建立連接,容器被認(rèn)為是健康的,如果不能就認(rèn)為是失敗的。支持的參數(shù)包括:

    • 端口:容器暴露的訪問端口或端口名,端口號必須介于1~65535。

    • 延遲探測時(shí)間(秒):即initialDelaySeconds,容器啟動(dòng)后第一次執(zhí)行探測時(shí)需要等待多少秒,默認(rèn)為15秒。

    • 執(zhí)行探測頻率(秒):即periodSeconds,指執(zhí)行探測的時(shí)間間隔,默認(rèn)為10秒,最小為1秒。

    • 超時(shí)時(shí)間(秒):即timeoutSeconds,探測超時(shí)時(shí)間。默認(rèn)1秒,最小1秒。

    • 健康閾值:探測失敗后,最少連續(xù)探測成功多少次才被認(rèn)定為成功。默認(rèn)是1,最小值是1。對于存活檢查(liveness)必須是1。

    • 不健康閾值:探測成功后,最少連續(xù)探測失敗多少次才被認(rèn)定為失敗。默認(rèn)是3,最小值是1。

    命令行

    通過在容器中執(zhí)行探針檢測命令,來檢測容器的健康情況。支持的參數(shù)包括:

    • 命令行:用于檢測容器健康情況的探測命令。

    • 延遲探測時(shí)間(秒):即initialDelaySeconds,容器啟動(dòng)后第一次執(zhí)行探測時(shí)需要等待多少秒,默認(rèn)為5秒。

    • 執(zhí)行探測頻率(秒):即periodSeconds,指執(zhí)行探測的時(shí)間間隔,默認(rèn)為10秒,最小為1秒。

    • 超時(shí)時(shí)間(秒):即timeoutSeconds,探測超時(shí)時(shí)間。默認(rèn)1秒,最小1秒。

    • 健康閾值:探測失敗后,最少連續(xù)探測成功多少次才被認(rèn)定為成功。默認(rèn)是1,最小值是1。對于存活檢查(liveness)必須是1。

    • 不健康閾值:探測成功后,最少連續(xù)探測失敗多少次才被認(rèn)定為失敗。默認(rèn)是3,最小值是1。

  5. 可選:生命周期區(qū)域,設(shè)置容器的生命周期。

    您可以為容器的生命周期配置啟動(dòng)執(zhí)行、啟動(dòng)后處理和停止前處理。具體操作,請參見配置生命周期生命周期

    參數(shù)

    描述

    啟動(dòng)執(zhí)行

    為容器設(shè)置預(yù)啟動(dòng)命令和參數(shù)。

    啟動(dòng)后處理

    為容器設(shè)置啟動(dòng)后的命令。

    停止前處理

    為容器設(shè)置預(yù)結(jié)束命令。

  6. 可選:數(shù)據(jù)卷區(qū)域,增加本地存儲或云存儲聲明PVC(Persistent Volume Claim)。

    參數(shù)

    描述

    增加本地存儲

    本地存儲:支持主機(jī)目錄(HostPath)、配置項(xiàng)(ConfigMap)、保密字典(Secret)和臨時(shí)目錄,將對應(yīng)的掛載源掛載到容器路徑中。更多信息,請參見volumes

    增加云存儲聲明(PersistentVolumeClaim)

    支持通過PVC掛載云存儲卷。在選擇目標(biāo)掛載源前,您需要?jiǎng)?chuàng)建云存儲聲明。具體操作,請參見創(chuàng)建持久化存儲卷聲明

    本例中配置了一個(gè)云存儲類型的數(shù)據(jù)卷聲明disk-ssd,將其掛載到容器的/tmp路徑下。配置數(shù)據(jù)卷

  7. 可選:日志配置區(qū)域,進(jìn)行采集配置和自定義Tag設(shè)置。

    重要

    請確保已部署Kubernetes集群,并且在此集群上已安裝日志插件。

    配置項(xiàng)

    描述

    采集配置

    日志庫:即在日志服務(wù)中生成一個(gè)對應(yīng)的Logstore,用于存儲采集到的日志。

    容器內(nèi)日志路徑:支持Stdout和文本日志。

    • Stdout:表示采集容器的標(biāo)準(zhǔn)輸出日志。

    • 文本日志:表示收集容器內(nèi)指定路徑的日志,本例中表示收集/var/log/nginx下所有的文本日志,也支持通配符的方式。

    自定義Tag

    您還可以設(shè)置自定義Tag,設(shè)置Tag后,會(huì)將該Tag一起采集到容器的日志輸出中。自定義Tag可幫助您給容器日志打上Tag,方便進(jìn)行日志統(tǒng)計(jì)和過濾等分析操作。

  8. 單擊下一步,進(jìn)入高級配置向?qū)ы撁妗?/span>

步驟三:完成高級配置

高級配置向?qū)ы撁嬷性O(shè)置訪問、伸縮、調(diào)度和標(biāo)簽注解。

  1. 訪問設(shè)置區(qū)域,設(shè)置暴露后端Pod的方式。

    說明

    針對應(yīng)用的通信需求,您可靈活進(jìn)行訪問設(shè)置:

    • 內(nèi)部應(yīng)用:對于只在集群內(nèi)部工作的應(yīng)用,您可以在創(chuàng)建服務(wù)時(shí),根據(jù)需要選擇虛擬集群IP節(jié)點(diǎn)端口類型的服務(wù),來進(jìn)行內(nèi)部通信。

    • 外部應(yīng)用:對于需要暴露到公網(wǎng)的應(yīng)用,您可以采用兩種方式進(jìn)行訪問設(shè)置。

      • 創(chuàng)建負(fù)載均衡類型的服務(wù):您可以在創(chuàng)建服務(wù)時(shí),選擇負(fù)載均衡類型的服務(wù)。通過阿里云提供的負(fù)載均衡服務(wù)SLB(Server Load Balancer),使得該服務(wù)提供公網(wǎng)訪問能力。

      • 創(chuàng)建路由(Ingress):通過創(chuàng)建路由(Ingress)提供公網(wǎng)訪問能力。更多信息,請參見Ingress

    您可以設(shè)置暴露后端Pod的方式。本例中選擇虛擬集群IP和路由(Ingress),構(gòu)建一個(gè)公網(wǎng)可訪問的Nginx應(yīng)用。

    • 配置服務(wù)(Service):在服務(wù)(Service)右側(cè),單擊創(chuàng)建設(shè)置服務(wù)的配置項(xiàng)。

      配置項(xiàng)

      描述

      服務(wù)名稱

      輸入Service(服務(wù))的名稱。

      服務(wù)類型

      選擇Service類型,Service網(wǎng)絡(luò)支持以下模式,分別對接不同來源和類型的客戶端的訪問,包括:

      虛擬集群IP(ClusterIP)

      虛擬集群IP(ClusterIP)主要服務(wù)于集群內(nèi)部通信,僅當(dāng)服務(wù)類型設(shè)置為虛擬的ClusterIP時(shí),才支持服務(wù)實(shí)例之間的發(fā)現(xiàn)。通過使用無頭服務(wù)Headless Service,您可以與其他服務(wù)發(fā)現(xiàn)機(jī)制互動(dòng),而不必依賴Kubernetes默認(rèn)提供的基于ClusterIP的服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

      負(fù)載均衡(LoadBalancer)

      說明

      新建NLB和使用已有NLB功能,目前處于灰度發(fā)布中。如需使用,請提交工單申請。

      負(fù)載均衡提供了一種方法,通過集成阿里云負(fù)載均衡器CLB(Classic Load Balancer)及網(wǎng)絡(luò)型負(fù)載均衡NLB(Network Load Balancer),可以將集群內(nèi)部應(yīng)用對外暴露。相比于NodePort方式,能夠顯著提升應(yīng)用的可用性和性能。支持如配置如下類型:

      節(jié)點(diǎn)端口(NodePort)

      節(jié)點(diǎn)端口(NodePort)提供了一種便捷的方式,使得外部用戶可以通過節(jié)點(diǎn)的IP地址和指定的端口來訪問集群中的服務(wù)。通過訪問 <NodeIP>:<NodePort>,用戶能夠連接到NodePort服務(wù),但是實(shí)現(xiàn)負(fù)載均衡的配置則需要用戶自己手動(dòng)完成。

      外部流量策略

      您的服務(wù)類型為節(jié)點(diǎn)端口負(fù)載均衡時(shí),才能設(shè)置外部流量策略。關(guān)于外部流量策略的詳細(xì)介紹,請參見Service快速入門

      • Local:流量只發(fā)給本節(jié)點(diǎn)的Pod。

      • Cluster:流量可以轉(zhuǎn)發(fā)到集群中其他節(jié)點(diǎn)上的Pod。

      服務(wù)關(guān)聯(lián)

      選擇服務(wù)要綁定的后端應(yīng)用。若不進(jìn)行關(guān)聯(lián)部署,則不會(huì)創(chuàng)建相關(guān)的Endpoints對象。關(guān)于服務(wù)關(guān)聯(lián)的詳細(xì)介紹,請參見services-without-selectors

      端口映射

      添加服務(wù)端口(對應(yīng)Service YAML文件中的port)和容器端口(對應(yīng)Service YAML文件中的targetPort),容器端口需要與后端的Pod中暴露的容器端口一致。

      注解

      為該服務(wù)添加一個(gè)注解(Annotation),配置負(fù)載均衡的參數(shù)。更多參數(shù),請參見通過Annotation配置傳統(tǒng)型負(fù)載均衡CLB通過Annotation配置網(wǎng)絡(luò)型負(fù)載均衡NLB

      重要

      請勿復(fù)用集群的API Server的負(fù)載均衡實(shí)例,否則將導(dǎo)致集群訪問異常。

      標(biāo)簽

      為該服務(wù)添加一個(gè)標(biāo)簽,標(biāo)識該服務(wù)。

    • 配置路由(Ingress):在路由(Ingress)右側(cè),單擊創(chuàng)建設(shè)置后端Pod的路由規(guī)則。

      配置項(xiàng)

      描述

      名稱

      輸入路由的名稱。

      規(guī)則

      路由規(guī)則是指授權(quán)入站到達(dá)集群服務(wù)的規(guī)則。更多信息,請參見配置路由信息

      • 域名:輸入Ingress域名。

      • 路徑:指定服務(wù)訪問的URL路徑,默認(rèn)為根路徑/,本例不作配置。每個(gè)路徑 (path)都關(guān)聯(lián)一個(gè)backend(服務(wù)),在阿里云SLB將流量轉(zhuǎn)發(fā)到backend之前,所有的入站請求都要先匹配域名和路徑。

      • 服務(wù):選擇服務(wù)的名稱和對應(yīng)端口。

      • 開啟TLS:配置安全的路由服務(wù)。具體操作,請參見Nginx Ingress高級用法

      灰度發(fā)布

      開啟灰度發(fā)布開關(guān)。此處建議選擇社區(qū)版。

      Ingress Class

      自定義Ingress的類。

      注解

      您可以自定義注解名稱和值,也可以根據(jù)名稱選擇或搜索需要配置的注解。Ingress的注解請參見Annotations

      單擊+添加,可對Ingress無上限地添加注解。

      標(biāo)簽

      標(biāo)簽的作用是為Ingress添加對應(yīng)的標(biāo)簽,表示該Ingress的特點(diǎn)。

      單擊+添加,可對Ingress無上限地添加標(biāo)簽。

    訪問設(shè)置區(qū)域,您可以看到已創(chuàng)建的服務(wù)和路由,您可以單擊變更刪除進(jìn)行二次配置。

  2. 可選:伸縮配置區(qū)域,配置是否開啟指標(biāo)伸縮定時(shí)伸縮,從而滿足應(yīng)用在不同負(fù)載下的需求。

    • 容器服務(wù)支持容器組的指標(biāo)伸縮,即根據(jù)容器的CPU和內(nèi)存資源占用情況自動(dòng)調(diào)整容器組的數(shù)量。

      說明

      若要啟用自動(dòng)伸縮,您必須為容器設(shè)置所需資源,否則容器自動(dòng)伸縮無法生效。

      參數(shù)

      描述

      指標(biāo)

      支持CPU和內(nèi)存,需要和設(shè)置的所需資源類型相同。

      觸發(fā)條件

      資源使用率的百分比,超過該使用量,容器開始擴(kuò)容。

      最大副本數(shù)

      該負(fù)載類型可擴(kuò)容的容器數(shù)量上限。

      最小副本數(shù)

      該負(fù)載類型可縮容的容器數(shù)量下限。

    • 容器服務(wù)支持容器組的定時(shí)伸縮,即定時(shí)地對容器服務(wù)Kubernetes集群進(jìn)行擴(kuò)縮容。開啟定時(shí)伸縮前,需先安裝ack-kubernetes-cronhpa-controller組件。關(guān)于定時(shí)伸縮的詳細(xì)說明,請參見步驟二:創(chuàng)建CronHPA任務(wù)

  3. 可選:調(diào)度設(shè)置區(qū)域,設(shè)置升級方式節(jié)點(diǎn)親和性應(yīng)用親和性應(yīng)用反親和性,更多信息,請參見Affinity and anti-affinity

    說明

    親和性調(diào)度依賴節(jié)點(diǎn)標(biāo)簽和Pod標(biāo)簽。您可以使用內(nèi)置的標(biāo)簽進(jìn)行調(diào)度,也可以預(yù)先為節(jié)點(diǎn)、Pod配置相關(guān)的標(biāo)簽。

    配置項(xiàng)

    描述

    升級方式

    選擇升級方式。包括滾動(dòng)升級(rollingupdate)和替換升級(recreate),關(guān)于升級方式的更多信息,請參見Deployments

    節(jié)點(diǎn)親和性

    設(shè)置節(jié)點(diǎn)親和性,通過Worker節(jié)點(diǎn)的Label標(biāo)簽進(jìn)行設(shè)置。

    節(jié)點(diǎn)調(diào)度支持硬約束和軟約束(Required/Preferred),以及豐富的匹配表達(dá)式(In, NotIn, Exists, DoesNotExist. Gt, and Lt):

    • 必須滿足,即硬約束,一定要滿足,對應(yīng)requiredDuringSchedulingIgnoredDuringExecution,效果與NodeSelector相同。本例中Pod只能調(diào)度到具有對應(yīng)標(biāo)簽的Worker節(jié)點(diǎn)。您可以定義多條硬約束規(guī)則,但只需滿足其中一條。

    • 盡量滿足,即軟約束,不一定滿足,對應(yīng)preferredDuringSchedulingIgnoredDuringExecution。調(diào)度會(huì)盡量調(diào)度Pod到具有對應(yīng)標(biāo)簽的Node節(jié)點(diǎn)。您還可為軟約束規(guī)則設(shè)定權(quán)重,具體調(diào)度時(shí),若存在多個(gè)符合條件的節(jié)點(diǎn),權(quán)重最大的節(jié)點(diǎn)會(huì)被優(yōu)先調(diào)度。您可定義多條軟約束規(guī)則,但必須滿足全部約束,才會(huì)進(jìn)行調(diào)度。

    應(yīng)用親和性

    決定應(yīng)用的Pod可以和哪些Pod部署在同一拓?fù)溆颉@纾瑢τ谙嗷ネㄐ诺姆?wù),可通過應(yīng)用親和性調(diào)度,將其部署到同一拓?fù)溆颍ㄈ缤粋€(gè)主機(jī))中,減少它們之間的網(wǎng)絡(luò)延遲。

    根據(jù)節(jié)點(diǎn)上運(yùn)行的Pod的標(biāo)簽(Label)來進(jìn)行調(diào)度,支持硬約束和軟約束,匹配的表達(dá)式有:In, NotIn, Exists, DoesNotExist

    • 必須滿足,即硬約束,一定要滿足,對應(yīng)requiredDuringSchedulingIgnoredDuringExecution,Pod的親和性調(diào)度必須要滿足后續(xù)定義的約束條件。

      • 命名空間:該策略是依據(jù)Pod的Label進(jìn)行調(diào)度,所以會(huì)受到命名空間的約束。

      • 拓?fù)溆?/b>:即topologyKey,指定調(diào)度時(shí)作用域,這是通過Node節(jié)點(diǎn)的標(biāo)簽來實(shí)現(xiàn)的,例如指定為kubernetes.io/hostname,那就是以Node節(jié)點(diǎn)為區(qū)分范圍;如果指定為beta.kubernetes.io/os,則以Node節(jié)點(diǎn)的操作系統(tǒng)類型來區(qū)分。

      • 選擇器:單擊選擇器右側(cè)的加號按鈕,您可添加多條硬約束規(guī)則。

      • 查看應(yīng)用列表:單擊應(yīng)用列表,彈出對話框,您可在此查看各命名空間下的應(yīng)用,并可將應(yīng)用的標(biāo)簽導(dǎo)入到親和性配置頁面。

      • 硬約束條件:設(shè)置已有應(yīng)用的標(biāo)簽、操作符和標(biāo)簽值。本例中,表示將待創(chuàng)建的應(yīng)用調(diào)度到該主機(jī)上,該主機(jī)運(yùn)行的已有應(yīng)用具有app:nginx標(biāo)簽。

    • 盡量滿足,即軟約束,不一定滿足,對應(yīng)preferredDuringSchedulingIgnoredDuringExecution。Pod的親和性調(diào)度會(huì)盡量滿足后續(xù)定義的約束條件。對于軟約束規(guī)則,您可配置每條規(guī)則的權(quán)重,其他配置規(guī)則與硬約束規(guī)則相同。

      說明

      權(quán)重:設(shè)置一條軟約束規(guī)則的權(quán)重,介于1~100,通過算法計(jì)算滿足軟約束規(guī)則的節(jié)點(diǎn)的權(quán)重,將Pod調(diào)度到權(quán)重最大的節(jié)點(diǎn)上。

    應(yīng)用反親和性

    決定應(yīng)用的Pod不與哪些Pod部署在同一拓?fù)溆颉?yīng)用非親和性調(diào)度的場景包括:

    • 將一個(gè)服務(wù)的Pod分散部署到不同的拓?fù)溆颍ㄈ绮煌鳈C(jī))中,提高服務(wù)本身的穩(wěn)定性。

    • 給予Pod一個(gè)節(jié)點(diǎn)的獨(dú)占訪問權(quán)限來保證資源隔離,保證不會(huì)有其他Pod來分享節(jié)點(diǎn)資源。

    • 把可能會(huì)相互影響的服務(wù)的Pod分散在不同的主機(jī)上。

    說明

    應(yīng)用非親和性調(diào)度的設(shè)置方式與親和性調(diào)度相同,但是相同的調(diào)度規(guī)則代表的意思不同,請根據(jù)使用場景進(jìn)行選擇。

    調(diào)度容忍

    容忍被應(yīng)用于Pod,允許這個(gè)Pod被調(diào)度到相應(yīng)的污點(diǎn)上。關(guān)于如何配置污點(diǎn)(鍵對值及效果Effect)與容忍,請參見Kubernetes官方文檔污點(diǎn)與容忍

    調(diào)度到虛擬節(jié)點(diǎn)

    設(shè)置是否調(diào)度到虛擬節(jié)點(diǎn),僅ACK集群Pro版支持,如果您的集群中沒有虛擬節(jié)點(diǎn),則無法設(shè)置該配置項(xiàng)。關(guān)于如何將Pod調(diào)度至虛擬節(jié)點(diǎn),請參見指定ECS和ECI的資源分配

  4. 可選:標(biāo)簽和注釋區(qū)域,單擊添加設(shè)置容器組的標(biāo)簽和注釋。

    參數(shù)

    描述

    Pod標(biāo)簽

    為該P(yáng)od添加一個(gè)標(biāo)簽,標(biāo)識該應(yīng)用。

    Pod注解

    為該P(yáng)od添加一個(gè)注解(Annotation)。

  5. 單擊創(chuàng)建

步驟四:查看應(yīng)用

創(chuàng)建完成配置向?qū)ы撁嬷胁榭磻?yīng)用任務(wù)。

  1. 創(chuàng)建應(yīng)用任務(wù)已提交面板,單擊查看應(yīng)用詳情

    查看詳情

    默認(rèn)進(jìn)入新建的nginx-deployment的詳情頁面。

    說明

    您也可以通過以下操作創(chuàng)建路由與服務(wù)。如上圖所示,在訪問方式頁簽。

    • 單擊服務(wù)右側(cè)的創(chuàng)建,也可以創(chuàng)建服務(wù)。

    • 單擊路由右側(cè)的創(chuàng)建,也可以創(chuàng)建路由。

  2. 單擊左側(cè)導(dǎo)航欄的路由與負(fù)載均衡 > 路由,可以看到路由列表下出現(xiàn)一條規(guī)則。

    路由規(guī)則

  3. 在瀏覽器中訪問路由測試域名,您可以訪問Nginx歡迎頁。

    訪問nginx

相關(guān)操作

查看無狀態(tài)工作負(fù)載詳情

在左側(cè)導(dǎo)航欄單擊集群,單擊目標(biāo)集群名稱或目標(biāo)集群操作列下的詳情,選擇工作負(fù)載 > 無狀態(tài),在無狀態(tài)頁面單擊目標(biāo)應(yīng)用名稱或目標(biāo)應(yīng)用操作列下的詳情

說明

在無狀態(tài)列表中單擊標(biāo)簽字段,輸入對應(yīng)應(yīng)用標(biāo)簽的keyvalue,單擊確定后可過濾列表中的應(yīng)用。

在應(yīng)用詳情頁面您可以編輯、伸縮、查看YAML、重新部署、及刷新應(yīng)用。

操作項(xiàng)

描述

編輯

在應(yīng)用詳情頁面單擊編輯,您可以修改應(yīng)用信息。

伸縮

在應(yīng)用詳情頁面單擊伸縮,您可以修改所需容器組數(shù)量。

查看YAML

在應(yīng)用詳情頁面單擊查看Yaml,您可以更新下載另存為YAML文件。

重新部署

在應(yīng)用詳情頁面單擊重新部署,您可以重新部署應(yīng)用。

刷新

在應(yīng)用詳情頁面單擊刷新,您可以刷新應(yīng)用。

編輯已創(chuàng)建的無狀態(tài)工作負(fù)載

無狀態(tài)頁面的目標(biāo)應(yīng)用操作列下,單擊更多后,您可以進(jìn)行以下操作:

操作項(xiàng)

描述

查看Yaml

查看應(yīng)用的YAML內(nèi)容。

重新部署

重新部署應(yīng)用。

編輯標(biāo)簽

為應(yīng)用設(shè)置標(biāo)簽。

編輯注解

為應(yīng)用添加注解。

節(jié)點(diǎn)親和性

為應(yīng)用設(shè)置節(jié)點(diǎn)親和性。更多信息,請參見調(diào)度配置

彈性伸縮

為應(yīng)用設(shè)置彈性伸縮。更多信息,請參見使用容器水平伸縮(HPA)使用容器定時(shí)水平伸縮(CronHPA)

調(diào)度容忍

設(shè)置應(yīng)用的容忍策略。更多信息,請參見調(diào)度配置

升級策略

設(shè)置應(yīng)用升級的策略:

  • 滾動(dòng)升級:分批次逐步替換應(yīng)用Pod實(shí)例。

  • 替換升級:先暫停老版應(yīng)用Pod,用新版Pod替換。

復(fù)制創(chuàng)建

復(fù)制應(yīng)用相同的容器設(shè)置。

回滾

回滾至應(yīng)用之前發(fā)布的版本。

日志

查看應(yīng)用的日志信息。

刪除

刪除應(yīng)用。

批量重新部署應(yīng)用

無狀態(tài)頁面下方,通過選擇批量重新部署可以實(shí)現(xiàn)多個(gè)應(yīng)用的重新部署。

通過編排模板創(chuàng)建Linux應(yīng)用

在容器服務(wù)Kubernetes模板編排中,您需要自己定義一個(gè)應(yīng)用運(yùn)行所需的資源對象,通過標(biāo)簽選擇器等機(jī)制,將資源對象組合成一個(gè)完整的應(yīng)用。

本例演示如何通過一個(gè)編排模板創(chuàng)建Nginx應(yīng)用,包含一個(gè)Deployment和Service,后端Deployment會(huì)創(chuàng)建Pod資源對象,Service會(huì)綁定到后端Pod上,形成一個(gè)完整的Nginx應(yīng)用。

  1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群

  2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇工作負(fù)載 > 無狀態(tài)

  3. 無狀態(tài)頁面,單擊右上角的使用YAML創(chuàng)建資源

  4. 對模板進(jìn)行相關(guān)配置,完成配置后單擊創(chuàng)建

    • 示例模板:阿里云容器服務(wù)提供了多種資源類型的Kubernetes YAML示例模板,讓您快速部署資源對象。您可以根據(jù)Kubernetes YAML編排的格式要求自主編寫,來描述您想定義的資源類型。

    • 添加工作負(fù)載:您可以通過此功能快速定義一個(gè)YAML模板。

    • 使用已有模板:您可以將已有編排模板導(dǎo)入到模板配置頁面。

    • 保存模板:您可以保存設(shè)置好的編排模板。

    下面是一個(gè)Nginx應(yīng)用的示例編排,基于容器服務(wù)內(nèi)置的編排模板。通過該編排模板,即可快速創(chuàng)建一個(gè)屬于Nginx應(yīng)用的Deployment。

    說明
    • 容器服務(wù)支持Kubernetes YAML編排,支持通過---符號將資源對象分隔,從而可以通過一個(gè)模板創(chuàng)建多個(gè)資源對象。

    • 可選:在應(yīng)用中通過Volume方式掛載存儲卷時(shí),默認(rèn)情況下掛載目錄下的文件在掛載后將會(huì)被覆蓋。若要不影響掛載目錄下的其他文件,您可以配置subPath參數(shù)。

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
        name: nginx-deployment-basic
        labels:
          app: nginx
    spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
              ports:
              - containerPort: 80
              volumeMounts:
              - name: nginx-config
                mountPath: /etc/nginx/nginx.conf 
                subPath: nginx.conf   #設(shè)置subPath。    
            volumes:
            - name: nginx-config
              configMap:
                name: nginx-conf
    ---
    
    apiVersion: v1     
    kind: Service
    metadata:
       name: my-service1        #TODO: to specify your service name
       labels:
         app: nginx
    spec:
       selector:
         app: nginx             #TODO: change label selector to match your backend pod
       ports:
       - protocol: TCP
         name: http
         port: 30080            #TODO: choose an unique port on each node to avoid port conflict
         targetPort: 80
       type: LoadBalancer        ##本例中將type從NodePort修改為LoadBalancer。
    ---
    
    #存儲卷的配置項(xiàng)
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nginx-conf
      namespace: default
    data:
      nginx.conf: |-
       user  nginx;
       worker_processes  1;
       error_log  /var/log/nginx/error.log warn;
       pid        /var/run/nginx.pid;
       events {
            worker_connections  1024;
        }
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            #tcp_nopush     on;
            keepalive_timeout  65;
            #gzip  on;
            include /etc/nginx/conf.d/*.conf;
        } 
  5. 單擊創(chuàng)建后。會(huì)提示部署狀態(tài)信息。

通過命令行管理應(yīng)用

您可以通過命令行創(chuàng)建應(yīng)用或查看應(yīng)用的容器。

通過命令行創(chuàng)建應(yīng)用

  1. 執(zhí)行以下命令啟動(dòng)容器(本示例中為Nginx Web服務(wù)器)。

    • 1.18以上版本的集群,使用以下命令啟動(dòng)。

      kubectl create deployment nginx --image=registry.aliyuncs.com/spacexnice/netdia:latest
    • 1.18及以下版本的集群,使用以下命令啟動(dòng)。

       kubectl run -it nginx --image=registry.aliyuncs.com/spacexnice/netdia:latest
  2. 執(zhí)行以下命令,為該容器創(chuàng)建一個(gè)服務(wù)入口,指定--type=LoadBalancer將會(huì)為您創(chuàng)建一個(gè)阿里云負(fù)載均衡路由到該Nginx容器。

    kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer

通過命令行查看容器

執(zhí)行以下命令,查看所有default命名空間里正在運(yùn)行的容器。

kubectl get pods

預(yù)期輸出:

NAME                                   READY     STATUS    RESTARTS   AGE
nginx-2721357637-d****                 1/1       Running   1          9h

使用鏡像密鑰創(chuàng)建應(yīng)用

容器服務(wù)Kubernetes集群支持通過Web界面使用鏡像密鑰,包括新建鏡像密鑰和使用已有鏡像密鑰。

您在使用私有鏡像創(chuàng)建應(yīng)用時(shí),為確保鏡像安全,通常需要為鏡像設(shè)置密鑰。通過容器服務(wù)控制臺,您可以方便地將私有鏡像庫的身份認(rèn)證信息通過docker-registry類型的Secret傳入到Kubernetes中。

  1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群

  2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇工作負(fù)載 > 無狀態(tài)

  3. 無狀態(tài)頁面,設(shè)置命名空間,然后單擊右上角使用鏡像創(chuàng)建

  4. 應(yīng)用基本信息頁面設(shè)置相關(guān)參數(shù)。更多信息,請參見應(yīng)用基本信息

  5. 設(shè)置容器配置。

    本例僅對容器鏡像密鑰的配置進(jìn)行說明,關(guān)于容器配置說明,請參見容器基本配置

    1. 容器配置頁面,首先配置鏡像名稱,在鏡像名稱欄中輸入私有鏡像地址,填寫格式是domainname/namespace/imagename

      說明

      公共鏡像無須配置鏡像密鑰。

    2. 在鏡像版本欄中,輸入私有鏡像地址版本。

      本文示例使用Tomcat私有鏡像。

      容器配置

    3. 單擊設(shè)置鏡像密鑰,在彈出的對話框中進(jìn)行設(shè)置。

      • 選擇新建密鑰,您需要配置以下參數(shù)。

        參數(shù)

        描述

        密鑰名稱(regsecret)

        指定密鑰的鍵名稱,可自行定義。

        倉庫域名(docker-server)

        指定Docker倉庫地址。若輸入阿里云容器服務(wù)鏡像倉庫,會(huì)默認(rèn)補(bǔ)齊。

        用戶名(docker-username)

        指定Docker倉庫用戶名。若使用阿里云容器鏡像服務(wù),則為阿里云登錄賬號(包括阿里云主賬號和子賬號)。

        密碼(docker-password)

        指定Docker倉庫登錄密碼。若使用阿里云容器鏡像服務(wù),即容器鏡像獨(dú)立登錄密碼。

        郵箱(docker-email)

        指定郵件地址。非必選。

        單擊確定,您可以看到密鑰已創(chuàng)建成功。

        設(shè)置密鑰

      • 您也可以單擊已有密鑰。您可以通過命令行或YAML文件等方式預(yù)先創(chuàng)建好容器鏡像密鑰。具體操作,請參見如何支持私有鏡像使用私有鏡像倉庫創(chuàng)建應(yīng)用

        已有密鑰

  6. 根據(jù)頁面引導(dǎo),完成其他配置,最后單擊創(chuàng)建

    更多信息,請參見上文步驟三:完成高級配置

  7. 在控制臺左側(cè)導(dǎo)航欄,單擊集群

  8. 集群列表頁面,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情

  9. 在集群管理頁左側(cè)導(dǎo)航欄,選擇工作負(fù)載 > 無狀態(tài)

  10. 無狀態(tài)頁面,查看目標(biāo)應(yīng)用的運(yùn)行情況。

    Tomcat應(yīng)用已正常運(yùn)行,成功通過密鑰使用Tomcat私有鏡像。

相關(guān)文檔