k8s資源類型主要有Service立哑、Pod、Deployment苦银,其中Service資源NodePort負(fù)責(zé)與外部通信啸胧,將nodePort端口映射到內(nèi)部port端口。外部請(qǐng)求服務(wù)調(diào)用時(shí)幔虏,通過(guò)NodePort將請(qǐng)求轉(zhuǎn)發(fā)到Pod端口纺念。
-
具體如下nodeport.yaml示例
無(wú)標(biāo)題.png
對(duì)上圖做如下說(shuō)明
1)定義資源類型kind: Service
定義Service類型NodePort,向外部暴露nodePort: 30080端口想括,并映射到port: 80端口陷谱,選擇器selector選擇應(yīng)用webpp1-nodePort。
2)定義資源類型kind:Deployment
Deployment設(shè)置replicas:2即定義兩個(gè)副本瑟蜈,應(yīng)用標(biāo)簽名稱是webpp1-nodePort烟逊,containerPort定義應(yīng)用端口。 - 操作
可通過(guò)網(wǎng)上提供的免費(fèi)資源進(jìn)行實(shí)際操作踪栋,具體操作如下:
1) 在瀏覽器中打開(kāi)網(wǎng)頁(yè)
輸入這個(gè)網(wǎng)址:https://www.katacoda.com/courses/kubernetes/networking-introduction焙格, 打開(kāi)后會(huì)提供了一個(gè)實(shí)驗(yàn)用的Kubernetes集群,并可以通過(guò)網(wǎng)元模擬Terminal連接到集群的Master節(jié)點(diǎn)夷都。
2)執(zhí)行下面的命令創(chuàng)建一個(gè)nodeport類型的service眷唉。
kubectl apply -f nodeport.yaml
3)查看創(chuàng)建的service予颤,可以看到kubernetes創(chuàng)建了一個(gè)名為webapp-nodeport-svc的service,并為該service在主機(jī)節(jié)點(diǎn)上創(chuàng)建了30080這個(gè)Nodeport冬阳。
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 36m
webapp1-nodeport-svc NodePort 10.103.188.73 <none> 80:30080/TCP 3m
4)執(zhí)行查看pod命令蛤虐,看到創(chuàng)建了兩個(gè)pod
kubectl get pod -o wide