欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net core i上 K8S(七).netcore程序的服务发现

程序员文章站 2022-12-16 15:16:13
上一章我们分享了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验证

.net core i上 K8S(七).netcore程序的服务发现

查看环境变量

.net core i上 K8S(七).netcore程序的服务发现

我们再以相同的方式再创建一组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

.net core i上 K8S(七).netcore程序的服务发现

查看env

.net core i上 K8S(七).netcore程序的服务发现

我们进入容器,调用一下第一个service

.net core i上 K8S(七).netcore程序的服务发现

至此,我们证明了可以通过env使service互通