上一章我們分享了k8s的網路代理模式,今天我們來分享一下k8s中的服務發現。 1.環境變數模式的服務發現 k8s預設為我們提供了通過環境變數來實現服務發現的功能,前提是 1.需要service在pod之前創建 2.適用於同一命名空間 1.1創建service 1.2創建pod 1.3驗證 查看環境變 ...
上一章我們分享了k8s的網路代理模式,今天我們來分享一下k8s中的服務發現。
1.環境變數模式的服務發現
k8s預設為我們提供了通過環境變數來實現服務發現的功能,前提是
1.需要service在pod之前創建
2.適用於同一命名空間
1.1創建service
[root@localhost ~]# cat netcore-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
kubectl create -f netcore-service.yaml
1.2創建pod
[root@localhost ~]# cat netcore.yaml 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: serverpo
kubectl create -f netcore.yaml
1.3驗證
查看環境變數
我們再以相同的方式再創建一組pod+service
[root@localhost ~]# cat netcore2.yaml apiVersion: apps/v1beta2 kind: Deployment metadata: name: cys-netcore2 spec: replicas: 1 selector: matchLabels: app: cys-netcore2 template: metadata: labels: app: cys-netcore2 spec: containers: - name: cys-netcore2 image: chenyishi/webdocker_s_provider ports: - containerPort: 1000 env: - name: serverport value: "1000"
[root@localhost ~]# cat netcore-service2.yaml apiVersion: v1 kind: Service metadata: name: netcore-service2 labels: app: netcore2 spec: ports: - name: http protocol: TCP port: 1002 targetPort: 1000 nodePort: 31112 selector: app: cys-netcore2 type: NodePort
kubectl create -f netcore-service2.yaml
kubectl create -f netcore2.yaml
查看env
我們進入容器,調用一下第一個service
至此,我們證明瞭可以通過env使service互通