kubernetes實戰-交付dubbo服務到k8s集群(六)使用blue ocean流水線構建dubbo-consumer服務


我們這里的dubbo-consumer是dubbo-demo-service的消費者:

我們之前已經在jenkins配置好了流水線,只需要填寫參數就行了。

由於dubbo-consumer用的gitee的私有倉庫,需要添加公鑰,這里大家可以自己找個client服務來做實驗。

 

 

 

 

 

下面是我們通過jenkins構建的鏡像,已經上傳到我們的harbor私有倉庫當中了:

 

 

 這里我們構建了兩次,構建了兩個鏡像,11bb9cd這個用來做模擬生產發版更新實驗。

准備資源配置清單:

1、dp.yaml  紅色部分根據實際鏡像tag修改

# mkdir /data/k8s-yaml/dubbo-consumer
# cd /data/k8s-yaml/dubbo-consumer
# vi dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: dubbo-demo-consumer
  namespace: app
  labels: 
    name: dubbo-demo-consumer
spec:
  replicas: 1
  selector:
    matchLabels: 
      name: dubbo-demo-consumer
  template:
    metadata:
      labels: 
        app: dubbo-demo-consumer
        name: dubbo-demo-consumer
    spec:
      containers:
      - name: dubbo-demo-consumer
        image: harbor.od.com/app/dubbo-demo-consumer:master_191201_1600
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 20880
          protocol: TCP
        env:
        - name: JAR_BALL
          value: dubbo-client.jar
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: harbor
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      securityContext: 
        runAsUser: 0
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate: 
      maxUnavailable: 1
      maxSurge: 1
  revisionHistoryLimit: 7
  progressDeadlineSeconds: 600

2、svc.yaml

# vi svc.yaml
kind: Service
apiVersion: v1
metadata: 
  name: dubbo-demo-consumer
  namespace: app
spec:
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080
  selector: 
    app: dubbo-demo-consumer

3、ingress.yaml

# vi ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata: 
  name: dubbo-demo-consumer
  namespace: app
spec:
  rules:
  - host: demo.od.com
    http:
      paths:
      - path: /
        backend: 
          serviceName: dubbo-demo-consumer
          servicePort: 8080

 

應用資源配置清單:

# kubectl apply -f http://k8s-yaml.od.com/dubbo-consumer/dp.yaml
# kubectl apply -f http://k8s-yaml.od.com/dubbo-consumer/svc.yaml
# kubectl apply -f http://k8s-yaml.od.com/dubbo-consumer/ingress.yaml
# kubectl get pod -n app

 

 查看log,是否啟動成功:

# kubectl logs dubbo-demo-consumer-f8d5f5f74-dgmqd -n app

 

檢查dubbo-monitor是否已經注冊成功:

 

添加個dns解析,來驗證:

# vi /var/named/od.com.zone
# systemctl restart named

 

 瀏覽器訪問http://demo.od.com/hello?name=slim

 

 

 接下來我們模擬升級發版,我們提前修改了代碼,並提交到了git倉庫,發版的前提是使用jenkins提前構建了鏡像並且上傳到了我們的私有harbor倉庫中,具體的構建流程不在贅述,只需要將遠程git倉庫的版本修改后構建就行了。

修改dp.yaml資源配置清單,修改harbor鏡像倉庫中對應的tag版本:

 

# vi dp.yaml

 

 

 應用修改后的資源配置清單,當然也可以在dashboard中進行在線修改:

 

# kubectl apply -f http://k8s-yaml.od.com/dubbo-consumer/dp.yaml

 

 已經啟動起來了,使用瀏覽器驗證:http://demo.od.com/hello?name=slim

 

 

至此,我們一套完成的dubbo服務就已經交付到k8s集群當中了,並且也演示了如何發版。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM