上一章我們講了pod的hostip模式,但在生產環境中,我們都是通過service來訪問k8s集群的,service有兩種模式來暴漏埠,今天我們來分享一下 1.clusterIP模式 我們在創建service的時候,預設創建的時clusterIP模式,clusterIP模式的特點是只能在node節 ...
上一章我們講了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
成功訪問!!!