91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何體驗Service所提供的功能

發布時間:2021-11-24 16:32:20 來源:億速云 閱讀:143 作者:柒染 欄目:云計算

這篇文章給大家介紹如何體驗Service所提供的功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創建

創建Service對象時,Kubernetes會根據spec.selector來查找擁有指定標簽的Pod,查找到Pod就維護一組拓撲關系,如果查找不到也不會自動創建Pod(配置中沒有Pod模版),所以本例中用到的Pod對象需要單獨創建,在開始之前,假定我們已使用前面介紹Deployment時使用的配置創建了一組label為app: nginxPod對象,這些Pod通過端口80對外提供服務。

首先,我們將以下配置保存到名為service.yaml的文件中:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

然后,創建Service對象:

[root@ecs-d8b6 manifests]# kubectl create -f service.yaml 
service/nginx-service created

查看

接著查看剛剛創建的Service對象:

[root@ecs-d8b6 manifests]# kubectl get services nginx-service -o wide
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE   SELECTOR
nginx-service   ClusterIP   10.0.0.83    <none>        80/TCP    56s   app=nginx

命令行輸出中各字段含義如下:

  • NAME:Service對象名稱,對應配置中的metadata.name

  • TYPE:Service類型,默認為ClusterIP類型,更多的類型將在后面的章節中介紹;

  • CLUSTER-IP:自動分配的Cluster IP;

  • EXTERNAL-IP:外部IP地址,用于接收集群外部流量的地址,在后面介紹Service類型時詳細介紹;

  • PORT(S):Service對外暴露的端口列表,本例中只對外暴露一個端口,對應配置中的spec.ports

  • AGE:創建至今經歷的時間;

  • SELECTOR:標簽選擇器,Service根據此選擇器查看后端Pod,對應配置中的spec.selector

當前Kubernetes支持多種Service類型,來應對不同的使用場景:

  • ClusterIP:Service通過一個只能在集群內部訪問的 Cluster IP來暴露服務;

  • NodePort:Service通過Node上的某個端口來暴露服務;

  • LoadBalancer:Service通過具體云廠商提供的負載均衡器來暴露服務;

  • ExternalName:Service僅對外暴露一個域名;

查看Pod 拓撲

盡管Service會通過selector來查找Pod,但查找到的Pod信息并不直接記錄到Service對象中,而是記錄到一個Endpoints對象中,進一步說當創建Service對象時,Kubernetes還會創建一個同名的Endpoints對象,來記錄后端的Pod拓撲。 關于Endpoints,我們會在后續的章節中詳細介紹,此處僅做初步介紹。

查看隨Service一并創建的Endpoints對象:

[root@ecs-d8b6 manifests]# kubectl get endpoints nginx-service 
NAME            ENDPOINTS                                   AGE
nginx-service   172.17.0.4:80,172.17.0.5:80,172.17.0.6:80   20m

可以看到,該Endpoints對象記錄了Service匹配到的所有Pod地址。

訪問Service

在集群內部,可以直接訪問ServiceCluster IP,流量將會被自動轉發到后端的某個Pod中:

[root@ecs-d8b6 manifests]# curl 10.0.0.83
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<h2>Welcome to nginx!</h2>
...
</body>
</html>

更新

當更新Servicespec.selector時,Kubernetes會自動按照新的spec.selector配置查找Pod,并更新Endpoints對象。

使用kubectl edit service nginx-service命令來修改Service,并指定一個無法匹配到任何Podspec.selector,可以看到 Endpoints對象中的Pod拓撲信息也會相應地消失掉,如下所示:

[root@ecs-d8b6 manifests]# kubectl get endpoints nginx-service 
NAME            ENDPOINTS   AGE
nginx-service   <none>      31m

刪除

當刪除Service對象時,隨Service對象創建而自動創建的Endpoints對象也會一并刪除,后端的Pod不會被刪除,它仍然受相應的Pod控制器管理。

[root@ecs-d8b6 manifests]# kubectl delete service nginx-service 
service "nginx-service" deleted
[root@ecs-d8b6 manifests]# kubectl get endpoints nginx-service
Error from server (NotFound): endpoints "nginx-service" not found
[root@ecs-d8b6 manifests]# kubectl get pods 
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-5f67bd6bb-9nspj   1/1     Running   0          37m
nginx-deployment-5f67bd6bb-hl8xw   1/1     Running   0          37m
nginx-deployment-5f67bd6bb-pkv7h   1/1     Running   0          37m

關于如何體驗Service所提供的功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海原县| 邯郸市| 大方县| 磐安县| 剑川县| 翁源县| 南雄市| 建平县| 大城县| 图木舒克市| 临潭县| 陆川县| 太仓市| 文山县| 长岭县| 将乐县| 毕节市| 灵石县| 宜州市| 汉沽区| 中方县| 班玛县| 长丰县| 清镇市| 富源县| 竹北市| 本溪| 崇信县| 邮箱| 山丹县| 弥勒县| 大竹县| 万源市| 滁州市| 手机| 渭源县| 烟台市| 汝南县| 顺昌县| 柯坪县| 庐江县|