service服務也是Kubernetes裏核心字眼對象之一,Kubernetes裏的每個service其實就是咱們常常提起的微服務架構中的一個微服務,以前講解Pod,RC等資源對象其實都是爲講解Kubernetes Service作鋪墊的,下圖爲Pod,RC與Service的邏輯關係node
能夠看到上面的架構圖,service服務經過標籤選擇器定位後端pod,前提是service的selector必須和後端Pod標籤對應上才能找到相對應的Pod,而前段frontend經過service就能夠訪問到後端提供服務的pod了,而service默認IP類型爲主要分爲:nginx
下面我建立了一個nginx服務和一個對外提供服務的service,以下:docker
[root@master ~]# cat nginx.yaml apiVersion: v1 kind: Service metadata: name: serivce-mynginx namespace: default spec: type: NodePort selector: app: mynginx ports: - name: nginx port: 80 targetPort: 80 nodePort: 30080 --- apiVersion: apps/v1 kind: Deployment metadata: name: deploy namespace: default spec: replicas: 2 selector: matchLabels: app: mynginx template: metadata: labels: app: mynginx spec: containers: - name: nginx image: lizhaoqwe/nginx:v1 ports: - name: nginx containerPort: 80
執行yaml文件編程
[root@master ~]# kubectl create -f test.yaml service/serivce-mynginx created deployment.apps/deploy created
查看pod和service狀態後端
[root@master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE deploy-696bccb9fd-9zk2f 1/1 Running 0 138m deploy-696bccb9fd-vcgs5 1/1 Running 0 138m [root@master ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5d23h serivce-mynginx NodePort 10.103.92.182 <none> 80:30080/TCP 138m
驗證api
爲了更加深入理解kubernetes,咱們須要弄明白kubernetes裏的3中IP服務器