1. 程式人生 > >.net core i上 K8S(七).netcore程序的服務發現

.net core i上 K8S(七).netcore程序的服務發現

beta rpo oca d+ blog epo .html docke 分享

上一章我們分享了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互通

.net core i上 K8S(七).netcore程序的服務發現