如何創建服務?

阿裏雲問答 2022-01-07 10:18:09 阅读数:681

如何創建服務?




采納答案1:

本文檔為您介紹如何在Serverless Kubernetes集群中創建服務。

前提條件 創建一個 Serverless Kubernetes 集群。詳情參見創建 Serverless Kubernetes 集群。

背景信息 Kubernetes Service 定義了這樣一種抽象:一個 Pod 的邏輯分組,一種可以訪問它們的策略,通常稱為微服務。這一組 Pod 能够被 Service 訪問到,通常是通過 Label Selector 來實現。

在 Kubernetes 中,pod 雖然擁有獨立的 IP, 但 pod 會快速地創建和删除,因此,通過 pod 直接對外界提供服務不符合高可用的設計准則。通過 service 這個抽象,Service 能够解耦 frontend(前端)和 backend(後端) 的關聯,frontend 不用關心 backend 的具體實現,從而實現松耦合的微服務設計。

更多詳細的原理,請參見Kubernetes service。

步驟 1 創建 deployment 使用鏡像創建一個 deployment,本例中創建 serverless-app-deployment。具體操作參見使用鏡像創建應用。

步驟 2 創建服務 登錄容器服務管理控制臺。 在 Kubernetes 菜單下,單擊左側導航欄中的路由與負載均衡 > 服務,進入服務列錶頁面。 選擇所需的集群和命名空間,單擊頁面右上角的創建。 在彈出的創建服務對話框中,進行配置。 配置參數 名稱:輸入服務的名稱,本例中為 nginx-svc。 類型:選擇服務類型,即服務訪問的方式,包括: 虛擬集群 IP :即 ClusterIP,指通過集群的內部 IP 暴露服務,選擇該值,服務只能够在集群內部可以訪問,這也是默認的 ServiceType。 說明 您的服務類型為虛擬集群IP時,才能設置實例間發現服務(Headless Service)。 負載均衡:即 LoadBalancer,指阿裏雲提供的負載均衡服務(SLB),可選擇公網訪問或內部訪問。阿裏雲負載均衡服務可以路由到 NodePort 服務和 ClusterIP 服務。 說明 負載均衡類型支持新建SLB和使用已有 SLB,且多個 Kubernetes Service 可以複用同一個 SLB,但是存在以下限制: 使用已有的負載均衡實例會强制覆蓋已有監聽。 Kubernetes 通過 Service 創建的 SLB 不能複用(會導致 SLB 被意外删除)。只能複用您手動在控制臺(或調用 OpenAPI)創建的 SLB。 複用同一個 SLB 的多個 Service 不能有相同的前端監聽端口,否則會造成端口沖突。 複用 SLB 時,監聽的名字以及虛擬服務器組的名字被 Kubernetes 作為唯一標識符。請勿修改監聽和虛擬服務器組的名字。 不支持跨集群複用 SLB。 關聯:選擇服務要綁定的後端對象,本例中是前面創建的 nginx-deployment-basic 。若不進行關聯部署,則不會創建相關的 Endpoints 對象,您可自己進行綁定,參見 services-without-selectors。 外部流量策略:可選值為Local或Cluster。 說明 您的服務類型為節點端口或負載均衡時,才能設置外部流量策略。 端口映射:添加服務端口和容器端口,容器端口需要與後端的 pod 中暴露的容器端口一致。 注解:為該服務添加一個注解(annotation),配置負載均衡的參數,例如設置service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20錶示將該服務的帶寬峰值設置為20Mbit/s,從而控制服務的流量。更多參數請參見通過負載均衡訪問服務。 標簽:您可為該服務添加一個標簽,標識該服務。 單擊創建,nginx-svc 服務出現在服務列錶中。 查看服務 您可查看服務的基本信息,在瀏覽器中訪問 nginx-svc 的外部端點。 查看外部端點 至此,您完成如何創建一個關聯到後端的 deployment 的服務,最後成功訪問 Nginx 的歡迎頁面。


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071018093886.html