kubernetes部署微服務spring cloud的簡單例子

示例代碼  https://github.com/CodingSoldier/java-learn/tree/master/project/k8s-spring-cloud-csdn

csdn下載地址(積分似乎無法修改) https://download.csdn.net/download/u010606397/11245542

在本項目中,會部署eureka、gateway、app01、app02

先看下eureka的yaml配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-eureka-server
spec:
# 註冊中心只能部署一個pod
  replicas: 1
  selector:
    matchLabels:
      app: eureka-server
  template:
    metadata:
      labels:
        app: eureka-server
    spec:
      containers:
      - name: eureka-server
        image: codingsoldier/eureka-server:latest
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 10001
---
apiVersion: v1
kind: Service
metadata:
# service的名字非常重要,必須跟application.properties的eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/ 中的域名相同
  name: server-eureka-server
spec:
  selector:
    app: eureka-server
# 使用NodePort類型的Service,綁定service的10001端口到宿主機,以便在物理機瀏覽器上看註冊中心的信息
  type: NodePort
  ports:
  - name: http
    port: 10001
    targetPort: 10001
#   暴露端口取值範圍是30000-32767
    nodePort: 30001

重要的有兩點

1、註冊中心pod數量只能爲1個(只是演示,就這麼着了。實際部署中可以部署集羣,這太麻煩了)

2、Service的名字是 eureka.client.serviceUrl.defaultZone 的域名。見下圖

補充,image用的是我的倉庫,請改成自己的,在自己的機器上打成鏡像

 

gateway、app01、app02的註冊中心配置爲

eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/

爲了能夠在物理機上調用gateway,將gateway的service設置爲NodePort類型(實際部署時,應該通過ingress或者雲廠商提供的loadBlance調用網關。ngress太複雜了,不想搞)

使用步驟

1、把jar包上傳到所有node節點,打成鏡像

2、在主節點部署服務

app01的/test01/test02/post接口會使用feign調用app02,調一下這個接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章