日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kubernetes-Service

發布時間:2024/4/13 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kubernetes-Service 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過上節課的學習,已經能夠利用Deployment來創建一組Pod來提供具有高可用性的服務。

雖然每個Pod都會分配一個單獨的Pod IP,然而卻存在如下兩問題:

  • Pod IP 會隨著Pod的重建產生變化

  • Pod IP 僅僅是集群內可見的虛擬IP,外部無法訪問

這樣對于訪問這個服務帶來了難度。因此,kubernetes設計了Service來解決這個問題。

Service可以看作是一組同類Pod對外的訪問接口。借助Service,應用可以方便地實現服務發現和負載均衡。

?

操作一:創建集群內部可訪問的Service

# 暴露Service [root@master ~]# kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev service/svc-nginx1 exposed ? # 查看service [root@master ~]# kubectl get svc svc-nginx1 -n dev -o wide NAME ? ? ? ? TYPE ? ? ? CLUSTER-IP ? ? ? EXTERNAL-IP ? PORT(S) ? AGE ? ? SELECTOR svc-nginx1 ? ClusterIP ? 10.109.179.231 ? <none> ? ? ? ?80/TCP ? 3m51s ? run=nginx ? # 這里產生了一個CLUSTER-IP,這就是service的IP,在Service的生命周期中,這個地址是不會變動的 # 可以通過這個IP訪問當前service對應的POD [root@master ~]# curl 10.109.179.231:80 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> </head> <body> <h1>Welcome to nginx!</h1> ....... </body> </html>

操作二:創建集群外部也可訪問的Service

# 上面創建的Service的type類型為ClusterIP,這個ip地址只用集群內部可訪問 # 如果需要創建外部也可以訪問的Service,需要修改type為NodePort [root@master ~]# kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev service/svc-nginx2 exposed ? # 此時查看,會發現出現了NodePort類型的Service,而且有一對Port(80:31928/TC) [root@master ~]# kubectl get svc svc-nginx2 -n dev -o wide NAME ? ? ? ? TYPE ? ? ? CLUSTER-IP ? ? ? EXTERNAL-IP ? PORT(S) ? ? ? AGE ? SELECTOR svc-nginx2 ? NodePort ? ?10.100.94.0 ? ? <none> ? ? ? ?80:31928/TCP ? 9s ? ? run=nginx ? # 接下來就可以通過集群外的主機訪問 節點IP:31928訪問服務了 # 例如在的電腦主機上通過瀏覽器訪問下面的地址 http://192.168.5.4:31928/

刪除Service

[root@master ~]# kubectl delete svc svc-nginx-1 -n dev service "svc-nginx-1" deleted

配置方式

創建一個svc-nginx.yaml,內容如下:

apiVersion: v1 kind: Service metadata:name: svc-nginxnamespace: dev spec:clusterIP: 10.109.179.231 #固定svc的內網ipports:- port: 80protocol: TCPtargetPort: 80selector:run: nginxtype: ClusterIP

然后就可以執行對應的創建和刪除命令了:

創建:kubectl create -f svc-nginx.yaml

刪除:kubectl delete -f svc-nginx.yaml

小結

至此,已經掌握了Namespace、Pod、Deployment、Service資源的基本操作,有了這些操作,就可以在kubernetes集群中實現一個服務的簡單部署和訪問了,但是如果想要更好的使用kubernetes,就需要深入學習這幾種資源的細節和原理。

總結

以上是生活随笔為你收集整理的kubernetes-Service的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。