1. 程式人生 > >.net core i上 K8S(六).netcore程式的service網路代理模式

.net core i上 K8S(六).netcore程式的service網路代理模式

上一章我們講了pod的hostip模式,但在生產環境中,我們都是通過service來訪問k8s叢集的,service有兩種模式來暴漏埠,今天我們來分享一下

1.clusterIP模式

我們在建立service的時候,預設建立的時clusterIP模式,clusterIP模式的特點是隻能在node節點上訪問,建立方法如下:

1.1首先建立Deployment

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: cys-netcore
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cys
-netcore template: metadata: labels: app: cys-netcore spec: containers: - name: cys-netcore image: chenyishi/webdocker_s_provider ports: - containerPort: 1000 env: - name: serverport value: "1000"

1.2建立service,並指定clusterip(不指定也可以,會自動隨機分配)

注意:clusterIP設定須按照叢集搭建時指定的範圍設定,我們檢視一下我們制定的範圍

可以看到範圍是10.10.10.1~10.10.10.255,編寫yaml檔案如下

apiVersion: v1
kind: Service
metadata:
  name: netcore-service
  labels:
    app: netcore
spec:
  ports:
  - name: http
    protocol: TCP
    port: 1001
    targetPort: 1000
  clusterIP: "10.10.10.10"    #指定ip
selector: app: cys-netcore

可檢視資訊,如下

1.3驗證地址

我們可以去node節點驗證一下

至此clusterip介紹完畢

2.NodePort模式

我們可以看到clusterIP模式只能在node節點訪問,這無法滿足我們的生產環境,因此我們在生產環境中都是採用NodePort模式,對映到宿主機的port,我們的Deployment的yaml檔案還是採用上面的,需要改一下service的yaml檔案

apiVersion: v1
kind: Service
metadata:
  name: netcore-service
  labels:
    app: netcore
spec:
  ports:
  - name: http
    protocol: TCP
    port: 1001
    targetPort: 1000
    nodePort: 31111    #指定宿主機暴漏的埠
  selector:
    app: cys-netcore
  type: NodePort      #指定型別

注意:nodePort的埠號也是從叢集搭建時指定的範圍中設定的,不可超出範圍,如下

2.1建立service

檢視資訊

2.2驗證

訪問地址http://192.168.8.202:31111/api/values

 

成功訪問!!!