k8s-實戰(zhàn)入門-Service(九)

Service

通過上節(jié)課的學(xué)習(xí),已經(jīng)能夠利用Deployment來創(chuàng)建一組Pod來提供具有高可用性的服務(wù)。

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

Pod IP 會隨著Pod的重建產(chǎn)生變化

Pod IP 僅僅是集群內(nèi)可見的虛擬IP,外部無法訪問

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

Service可以看作是一組同類Pod對外的訪問接口。借助Service,應(yīng)用可以方便地實現(xiàn)服務(wù)發(fā)現(xiàn)和負載均衡。

Service的IP不會變。

操作一:創(chuàng)建集群內(nèi)部可訪問的Service

# 暴露Service

[root@master~]# kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev

# 查看service

[root@master~]# kubectl get svc svc-nginx -n dev -o wide

# 這里產(chǎn)生了一個CLUSTER-IP,這就是service的IP,在Service的生命周期中,這個地址是不會變動的

# 可以通過這個IP訪問當(dāng)前service對應(yīng)的POD

[root@master~]# curl 10.109.151.2:80

操作二:創(chuàng)建集群外部也可訪問的Service

# 上面創(chuàng)建的Service的type類型為ClusterIP,這個ip地址只用集群內(nèi)部可訪問

# 如果需要創(chuàng)建外部也可以訪問的Service,需要修改type為NodePort

[root@master~]# kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev

# 此時查看,會發(fā)現(xiàn)出現(xiàn)了NodePort類型的Service,而且有一對Port(80:31928/TC)

[root@master~]# kubectl get svc? svc-nginx-1? -n dev -o wide

# 接下來就可以通過集群外的主機訪問 節(jié)點IP:31928訪問服務(wù)了

# 例如在的電腦主機上通過瀏覽器訪問下面的地址

http://10.96.180.255:32511/

刪除Service

[root@master~]# kubectl delete svc svc-nginx1 -n dev ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

配置方式

創(chuàng)建一個svc-nginx.yaml,內(nèi)容如下:

apiVersion: v1

kind: Service

metadata:

? name: svc-nginx

? namespace: dev

spec:

? clusterIP: 10.109.151.2

? ports:

? - port: 80

?? protocol: TCP

?? targetPort: 80

? selector:

?? run: nginx

? type: ClusterIP

然后就可以執(zhí)行對應(yīng)的創(chuàng)建和刪除命令了:

? ? 創(chuàng)建:

kubectl? create? -f? svc-nginx.yaml

? ? 刪除:

kubectl? delete? -f? svc-nginx.yaml

小結(jié)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容