本文首發(fā)自「慕課網(wǎng)」,想了解更多IT干貨內(nèi)容,程序員圈內(nèi)熱聞,歡迎關(guān)注"慕課網(wǎng)"!
作者:一凡|慕課網(wǎng)講師
集群內(nèi)訪問(wèn)
在k8s中創(chuàng)建的微服務(wù),大部分都是在集群內(nèi)部互相調(diào)用,這時(shí)候,使用DNS就可以很方面訪問(wèn)。
比如:服務(wù)名是 my-service,端口號(hào)是8080,命名空間是yifan,那么就可以通過(guò)域名+端口 “my-service.yifan.svc.cluster.local:8080” 在集群內(nèi)訪問(wèn)。
當(dāng)然,也可以直接用服務(wù)的ClusterIP+服務(wù)的端口號(hào),只是這么使用的較少。
DNS解析到的IP也就是這個(gè)服務(wù)的ClusterIP,只是咱們不需要記住ClusterIP,記住服務(wù)名對(duì)應(yīng)的域名更加容易。
如上圖所示,就是k8s集群內(nèi)的服務(wù)訪問(wèn)流程。
客戶端通過(guò)DNS服務(wù)的域名解析 my-service.yifan.svc.cluster.local 返回這個(gè)服務(wù)的ClusterIP。
然后創(chuàng)建TCP連接到這個(gè)ClusterIP+端口號(hào)上。
網(wǎng)絡(luò)請(qǐng)求經(jīng)過(guò)Iptables/ipvs規(guī)則處理,經(jīng)過(guò)負(fù)載均衡策略,把這個(gè)ClusterIP重定向到服務(wù)的后端實(shí)例,也就是這個(gè)服務(wù)的某一個(gè)Pod得PodIP。
這樣TCP連接成功創(chuàng)建,客戶端也就建立了與服務(wù)的后端實(shí)例的連接,也就可以進(jìn)行后續(xù)的請(qǐng)求了。
下面是Cluster類型的service的yaml文件示例:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: ClusterIP
selector:
app: my-app
ports:
- name: http
port: 80
targetPort: 8080
這個(gè)YAML文件包含以下內(nèi)容:
-
apiVersion
: 指定Kubernetes API的版本。 -
kind
: 指定要?jiǎng)?chuàng)建的對(duì)象類型,此處為Service。 -
metadata.name
: 指定Service的名稱,此處為“my-service”。 -
spec.type
: 指定Service的類型,此處為“ClusterIP”。 -
spec.selector
: 指定要為Service選擇的Pod或副本集的標(biāo)簽選擇器。在這個(gè)例子中,標(biāo)簽選擇器是“app=my-app”。 -
spec.ports
: 指定要公開(kāi)的端口及其配置信息。在這個(gè)例子中,將公開(kāi)端口80,名稱為“http”,將流量轉(zhuǎn)發(fā)到Pod中的端口8080。
要使用此YAML文件創(chuàng)建Service,請(qǐng)使用以下命令:
kubectl apply -f service.yaml
這是集群內(nèi)訪問(wèn)的流程,接下來(lái),再來(lái)看看本文的核心內(nèi)容,外網(wǎng)如何訪問(wèn)。
集群外訪問(wèn)
k8s集群的外網(wǎng)訪問(wèn)方式有3種:
Ingress, NodePort和LoadBanlancer。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-499777.html
其中Ingress是k8s的一個(gè)抽象層,有很多的IngressController和服務(wù)可以來(lái)實(shí)現(xiàn)這個(gè)Ingress服務(wù),然后由這個(gè)Ingress服務(wù)把外網(wǎng)的請(qǐng)求轉(zhuǎn)發(fā)到集群內(nèi)的服文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-499777.html
到了這里,關(guān)于一文讀懂k8s的外網(wǎng)訪問(wèn)方式,Ingress/NodePort/LoadBanlancer的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!