亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

k8s?Service?實現(xiàn)服務發(fā)現(xiàn)和負載均衡

 更新時間:2023年04月10日 08:51:47   作者:路由器沒有路  
這篇文章主要為大家介紹了k8s?Service?實現(xiàn)服務發(fā)現(xiàn)和負載均衡的工作原理及使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

本文將介紹 Kubernetes 的資源對象 Service,內(nèi)容包括 Service 介紹、Service 的四種類型及使用方式、不指定 Selectors 的服務、Headless 服務、Service 工作原理及原理圖。同時也會講解 Ingress 和集群外部如何訪問服務。

在容器編排系統(tǒng)中,如 Kubernetes,Pod 是最小的部署單元。而一組 Pod 通常對外提供某種服務。在 Kubernetes 中,Service 就是用來對外暴露一組 Pod 的服務的資源對象。Service 可以通過 IP 地址和端口號訪問,從而對外提供服務。

Service 介紹

Service 是 Kubernetes 中一個非常重要的概念,它可以將一組 Pod 封裝成一個邏輯服務單元。

Service 可以通過定義的 Label Selector,將一組 Pod 綁定到一起,形成一個 Service。通過 Service,用戶可以方便地訪問這個服務,不需要關心 Pod 的具體 IP 地址和端口號,也不需要擔心 Pod 的數(shù)量變化會影響服務的訪問。

Service 的四種類型及使用方式

Kubernetes 中的 Service 一共有四種類型,分別是 ClusterIP、NodePort、LoadBalancer 和 ExternalName。

  • ClusterIP:是 Service 的默認類型,它會為 Service 創(chuàng)建一個 Cluster IP,這個 IP 只能在集群內(nèi)部訪問。通過 ClusterIP,用戶可以訪問該 Service 關聯(lián)的 Pod。
  • NodePort:在每個節(jié)點上綁定一個端口,從而將 Service 暴露到集群外部。用戶可以通過任意一個節(jié)點的 IP 地址和該端口號來訪問 Service。
  • LoadBalancer:在云廠商提供的負載均衡器上創(chuàng)建一個 VIP,從而將 Service 暴露到集群外部。用戶可以通過該 VIP 地址來訪問 Service。
  • ExternalName:可以將 Service 映射到集群外部的一個 DNS 名稱上,從而將 Service 暴露到集群外部。

另外,也可以將已有的服務以 Service 的形式加入到 Kubernetes 集群中來,只需要在創(chuàng)建 Service 的時候不指定 Label selector,而是在 Service 創(chuàng)建好后手動為其添加 endpoint。

Service 的定義和使用

Service 也是可以通過 yaml 來定義的。

以下是帶有 selector 和 type 的 YAML 文件定義一個名為 nginx 的 Service,將服務的 80 端口轉發(fā)到 default namespace 中帶有標簽 run=nginx 的 Pod 的 80 端口:

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    run: nginx
  type: ClusterIP
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

其中,type 為 Service 的類型,可以取值為 ClusterIP、NodePort、LoadBalancer 和 ExternalName。

本例中的 type 為 ClusterIP,表示該 Service 的類型為 ClusterIP。

以下是通過命令創(chuàng)建及查看創(chuàng)建的服務情況的操作步驟和預期的展示內(nèi)容。

通過命令創(chuàng)建服務

使用 kubectl create 命令創(chuàng)建一個名為 nginx 的服務,并將服務的 80 端口轉發(fā)到 default namespace 中帶有標簽 run=nginx 的 Pod 的 80 端口。運行以下命令:

kubectl create service clusterip nginx --tcp=80:80 --dry-run=client -o yaml > nginx-service.yaml

這個命令將在當前目錄下生成一個名為 nginx-service.yaml 的 YAML 文件,其中包含了創(chuàng)建 Service 所需的配置信息。

預期展示內(nèi)容:

service/nginx created (dry run)

使用 kubectl apply 命令創(chuàng)建 Service。運行以下命令:

kubectl apply -f nginx-service.yaml

這個命令將根據(jù) YAML 文件中的配置信息創(chuàng)建一個名為 nginx 的 Service。

預期展示內(nèi)容:

service/nginx created

查看創(chuàng)建的服務情況

使用 kubectl get 命令查看已經(jīng)創(chuàng)建的 Service。運行以下命令:

kubectl get services

這個命令將顯示所有已經(jīng)創(chuàng)建的 Service,包括它們的名稱、類型、Cluster IP、端口等信息。

預期展示內(nèi)容:

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP    4h19m
nginx        ClusterIP   10.96.58.173   <none>        80/TCP     1m

使用 kubectl describe 命令查看指定 Service 的詳細信息。運行以下命令:

kubectl describe service nginx

這個命令將顯示名為 nginx 的 Service 的詳細信息,包括它的類型、Cluster IP、端口、Selector 等信息。

預期展示內(nèi)容:

Name:              nginx
Namespace:         default
Labels:            run=nginx
Annotations:       <none>
Selector:          run=nginx
Type:              ClusterIP
IP:                10.96.58.173
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         10.244.0.7:80
Session Affinity:  None
Events:            <none>

不指定 Selectors 的服務

當用戶創(chuàng)建 Service 的時候,可以不指定 Label Selector,這種 Service 被稱為無選擇器服務(no selector service)。無選擇器服務不能和 Pod 綁定,而只是提供一個固定的 IP 和端口,用于訪問后端服務。這種服務通常用于代理到外部的服務,如數(shù)據(jù)庫、消息隊列等。

Headless 服務

Kubernetes 中的 Service 還有一個特殊的類型,叫做 Headless 服務。Headless 服務的 ClusterIP 為 None,它不會為 Service 創(chuàng)建 Cluster IP。通過 Headless 服務,用戶可以直接訪問該 Service 關聯(lián)的 Pod,而不需要通過 Service 進行訪問。

Service 工作原理及原理圖

Service 的工作原理是通過代理模式實現(xiàn)的,即 kube-proxy 負責將 service 負載均衡到后端 Pod 中。

當用戶通過 Service 的 IP 和端口訪問 Service 時,請求會先到達 Service 代理,然后由代理將請求轉發(fā)給后端的 Pod。

當 Pod 發(fā)生變化時,Service 會自動更新 Endpoint,從而保證請求能夠正確地到達后端 Pod。

以下是 Service 工作原理的原理圖:

Ingress 講解

Ingress 是 Kubernetes 中另一個重要的資源對象,它用于將集群外部的 HTTP(S) 流量路由到集群內(nèi)部的 Service。通過 Ingress,用戶可以在集群外部定義一個域名,然后將該域名路由到 Service 中。Ingress 可以實現(xiàn)灰度發(fā)布、負載均衡、SSL 終止等功能。

集群外部如何訪問服務

當用戶需要從集群外部訪問 Kubernetes 中的 Service 時,可以通過 NodePort、LoadBalancer 或 Ingress 來實現(xiàn)。具體方式如下:

  • NodePort

用戶可以通過任意一個節(jié)點的 IP 地址和該節(jié)點上綁定的端口號來訪問 Service。例如,如果 NodePort 的端口為 30080,節(jié)點 IP 地址為 192.168.0.10,則用戶可以通過 http://192.168.0.10:30080 訪問該 Service。

  • LoadBalancer

當 Service 的類型為 LoadBalancer 時,云廠商會在其提供的負載均衡器上為 Service 創(chuàng)建一個 VIP,用戶可以通過該 VIP 地址來訪問 Service。

  • Ingress

通過 Ingress,用戶可以在集群外部定義一個域名,并將該域名路由到 Service 中。用戶可以通過該域名來訪問 Service。

總結

以上是關于 Kubernetes 中的 Service 的介紹,包括 Service 介紹和定義、Service 的四種類型 Service 工作原理、Ingress 講解以及集群外部如何訪問服務。

在使用 Service 時,用戶不需要關心 Pod 的具體 IP 地址和端口號,也不需要擔心 Pod 的數(shù)量變化會影響服務的訪問。

通過 Ingress,用戶可以在集群外部定義一個域名,然后將該域名路由到 Service 中,從而實現(xiàn)灰度發(fā)布、負載均衡、SSL 終止等功能。

以上就是k8s Service 實現(xiàn)服務發(fā)現(xiàn)和負載均衡的詳細內(nèi)容,更多關于k8s Service服務發(fā)現(xiàn)負載均衡的資料請關注腳本之家其它相關文章!

相關文章

  • Kubernetes?權限管理認證鑒權詳解

    Kubernetes?權限管理認證鑒權詳解

    這篇文章主要為大家介紹了Kubernetes?權限管理認證鑒權詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 自定義資源CRD使用介紹

    自定義資源CRD使用介紹

    這篇文章主要為大家介紹了自定義資源CRD的使用示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • K8S?中?kubectl?命令詳解

    K8S?中?kubectl?命令詳解

    這篇文章主要介紹了K8S?中?kubectl?命令,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Rainbond使用Dockerfile構建便捷應用運行流程

    Rainbond使用Dockerfile構建便捷應用運行流程

    這篇文章主要為大家介紹了Rainbond使用Dockerfile構建便捷應用運行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 在AWS-EC2中安裝Minikube集群的詳細過程

    在AWS-EC2中安裝Minikube集群的詳細過程

    這篇文章主要介紹了在AWS-EC2中安裝Minikube集群,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明

    詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明

    這篇文章主要為大家介紹了詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • K8S中五種控制器的介紹以及使用

    K8S中五種控制器的介紹以及使用

    這篇文章主要給大家介紹了關于K8S中五種控制器及使用的相關資料,控制器 又稱之為工作負載,本文通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • k8s編排之StatefulSet知識點詳解一

    k8s編排之StatefulSet知識點詳解一

    這篇文章主要為大家介紹了k8s編排之StatefulSet知識點的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Kubernetes控制器中DaemonSet與Job的使用教程

    Kubernetes控制器中DaemonSet與Job的使用教程

    這篇文章主要介紹了Kubernetes控制器中DaemonSet與Job的使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Kubernetes訪問控制之鑒權方法詳解

    Kubernetes訪問控制之鑒權方法詳解

    這篇文章主要為大家介紹了Kubernetes訪問控制之鑒權方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論