1. 程式人生 > >攜程 Apollo 配置中心 | 學習筆記(六) | 詳細介紹攜程Apollo配置中心部署至Kubernetes叢集中

攜程 Apollo 配置中心 | 學習筆記(六) | 詳細介紹攜程Apollo配置中心部署至Kubernetes叢集中

專欄目錄:

歡迎關注個人公眾號:  Coder程式設計

歡迎關注個人網站:www.52melrin.com

以上為之前寫的攜程Apollo配置中心相關文章,有需要,請自行查閱

接下來將介紹攜程Apollo配置中心部署至Kubernetes叢集中

注意:這裡需要有一定的Kubernetes相關知識,和搭建好的環境。

一、環境準備

   這裡就不過多介紹環境相關內容了,跟之前的類似。這裡需要準備好Kubernetes的相關環境,如何搭建的,可以參考Kubernetes 1.9.0離線安裝

一、修改配置檔案

    接上一篇文章,修改部分檔案

docker-compose.yml

version: "3"  
  
services:  
  apollo-configservice:                                         ##容器服務名  
    container_name: apollo-configservice                        ##容器名  
    build: apollo-configservice/                                ##Dockerfile路徑  
    image: xx/third_party/apollo-configservice:0.10.8                           ##映象名  
    network_mode: host                                        ##網路設定  
    ports:  
      - "30080:30080"  
    volumes:  
      - "/Users/mobin/opt/logs/100003171:/opt/logs/100003171"    ##將/opt/logs/100003171目錄掛載到宿主機的/Users/mobin/opt/logs/100003171方便在宿主機上檢視日誌  
    environment:  
      - spring_datasource_url=jdbc:mysql://xxxx:xx/ApolloConfigDB?characterEncoding=utf8  
      - spring_datasource_username=root  
      - spring_datasource_password=123456  
  
  apollo-adminservice:  
    container_name: apollo-adminservice  
    build: apollo-adminservice/  
    image: xxx/third_party/apollo-adminservice:0.10.8
    network_mode: host  
    #net: "host"  
    ports:  
      - "30090:30090"  
    depends_on:  
      - apollo-configservice  
    volumes:  
      - "/Users/mobin/opt/logs/100003172:/opt/logs/100003172"  
    environment:  
      - spring_datasource_url=jdbc:mysql://xxxx:xx/ApolloConfigDB?characterEncoding=utf8  
      - spring_datasource_username=root  
      - spring_datasource_password=123456  
  
  apollo-portal:  
    container_name: apollo-portal  
    build: apollo-portal/  
    image: xxxx/third_party/apollo-portal:0.10.8
    network_mode: host  
    #net: "host"  
    ports:  
      - "30070:30070"  
    depends_on:  
      - apollo-adminservice
    #links:
     # - apollo-adminservice
     # - apollo-configservice  
    volumes:  
      - "/Users/mobin/opt/logs/100003173:/opt/logs/100003173"  
    environment:  
      - spring_datasource_url=jdbc:mysql://xxxx:xx/ApolloPortalDB?characterEncoding=utf8  
      - spring_datasource_username=root  
      - spring_datasource_password=123456
      - dev_meta=http://xxxx:30080
上述內容就不做過多介紹了。

之後使用Kompose將docker-compose檔案轉換成kubernetes相關檔案。這裡就不一一列舉了。直接放檔案!

kubernetes.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-configservice
  name: apollo-configservice
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: apollo-configservice
    spec:
      #hostNetwork: true
      containers:
      - env:
        - name: spring_datasource_password
          value: "123456"
        - name: spring_datasource_url
          value: jdbc:mysql://xxxx:xx/apolloconfigdb?useUnicode=true&characterEncoding=utf8
        - name: spring_datasource_username
          value: root
        image: x.x.x.x/third_party/apollo-configservice:0.10.1
        name: apollo-configservice
        ports:
        - containerPort: 30080
        resources: {}
        volumeMounts:
        - mountPath: /opt/logs/100003171
          name: apollo-configservice
      volumes:
      - name: apollo-configservice
        hostPath:
          path: /u03/apollo/logs/100003171
status: {}
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-configservice
  name: apollo-configservice
spec:
  type: NodePort
  ports:
  - name: "http"
    port: 30080
    targetPort: 30080
    nodePort: 30080
  selector:
    io.kompose.service: apollo-configservice
status:
  loadBalancer: {}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-adminservice
  name: apollo-adminservice
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: apollo-adminservice
    spec:
      #hostNetwork: true
      containers:
      - env:
        - name: spring_datasource_password
          value: "123456"
        - name: spring_datasource_url
          value: jdbc:mysql://x.x.x.x:xx/apolloconfigdb?useUnicode=true&characterEncoding=utf8
        - name: spring_datasource_username
          value: root
        image: x.x.x.x:xx/third_party/apollo-adminservice:0.10.8
        name: apollo-adminservice
        ports:
        - containerPort: 30090
        resources: {}
        volumeMounts:
        - mountPath: /opt/logs/100003172
          name: apollo-adminservice
      volumes:
      - name: apollo-adminservice
        hostPath:
          path: /u03/apollo/logs/100003172
status: {}
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-adminservice
  name: apollo-adminservice
spec:
  type: NodePort
  ports:
  - name: "http"
    port: 30090
    targetPort: 30090
    nodePort: 30090
  selector:
    io.kompose.service: apollo-adminservice
status:
  loadBalancer: {}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-portal
  name: apollo-portal
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: apollo-portal
    spec:
      #hostNetwork: true
      containers:
      - env:
        - name: dev_meta
          value: http://x.x.x.x:30080
        - name: spring_datasource_password
          value: "123456"
        - name: spring_datasource_url
          value: jdbc:mysql://x.x.x.x:xx/apolloportaldb?useUnicode=true&characterEncoding=utf8
        - name: spring_datasource_username
          value: root
        image: x.x.x.x/third_party/apollo-portal:0.10.8
        name: apollo-portal
        ports:
        - containerPort: 30070
        resources: {}
        volumeMounts:
        - mountPath: /opt/logs/100003173
          name: apollo-portal
      volumes:
      - name: apollo-portal
        hostPath:
          path: /u03/apollo/logs/100003173
status: {}
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.11.0 (39ad614)
  creationTimestamp: null
  labels:
    io.kompose.service: apollo-portal
  name: apollo-portal
spec:
  type: NodePort
  ports:
  - name: "http"
    port: 30070
    targetPort: 30070
    nodePort: 30070
  selector:
    io.kompose.service: apollo-portal
status:
  loadBalancer: {}

以上為kubernetes啟動檔案。根據個人需要作出相應修改!

啟動檔案後,會發現客戶端報一個錯誤:client端連線的是Kubernetes內網ip 10.x.x.x 導致apollo port端無法找到admin和config。

這時候需要修改apollo-adminservice 、apollo-configservice 中的 bootstrap.yml檔案。

apollo-adminservice 中的bootstrap.yml檔案修改同apollo-configservice


這裡新增某一個kubernetes的外網ip地址,以及暴露的埠號。之後重新打包成映象,上傳至harbor 映象庫。重新執行上面的kubernetes.yaml檔案。

即可看到成功部署,這裡就不放圖了。。。

相關推薦

Apollo 配置中心 | 學習筆記 | 詳細介紹Apollo配置中心部署Kubernetes集中

專欄目錄:歡迎關注個人公眾號:  Coder程式設計歡迎關注個人網站:www.52melrin.com以上為之前寫的攜程Apollo配置中心相關文章,有需要,請自行查閱接下來將介紹攜程Apollo配置中心部署至Kubernetes叢集中注意:這裡需要有一定的Kubernete

Apollo 配置中心 | 學習筆記 | 詳細介紹Apollo配置中心部署Docker容器

一、Apollo配置中心介紹          關於攜程apollo配置中心的介紹,官網和網上都有許多教程,這裡我放下之前我寫的,如果有不瞭解的可以先看這些文章。二、環境準備           Java Jdk 1.8、Maven 3.3.9、Apollo版本 0.10.1

F28335 ePWM計數模組CC與 動作模組AC及其暫存器配置 ————TMS320F28335學習筆記

1 計數比較模組 1.1 計數比較模組作用 計數比較模組是以時基計數器的值作為輸入,與比較暫存器CMPA和CMPB不斷進行比較的,當時基計數器的值等於其中之一時,就會產生相應的事件。 F28335就是通過對比這些值,來產生事件,與動作模組AC相配合來調節PWM的佔空比以及頻率。 補充:採

學習筆記ubuntu16.04下Sublime Text3配置anaconda和tensorflow

注:本文非標準教程,僅是總結個人學習過程,可能存在紕漏,如有錯誤之處歡迎留言告知,非常感謝 上一篇學習筆記是使用IPYTHON去編譯tensorflow,但是我沒有圖形化介面實在不習慣,於是下了很多 IDE嘗試去編譯tensorflow,但是一律都是

mybatis學習筆記使用generator生成mybatis基礎配置程式碼和目錄結構

建立maven專案 <span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0"

Kubernetes學習筆記:使用ConfigMap和Secret配置應用程式

## 概述 本文的核心是:如何處理應用程式的資料配置。 配置應用程式可以使用以下幾種途徑: - 向容器傳遞命令列引數 - 為每個容器配置環境變數 - 通過特殊的卷將配置檔案掛載到容器中 ## 向容器傳遞命令列引數 在Kubernetes中定義容器時,映象的ENTRYPOINT和CMD都可以被覆蓋(但是在Do

Apollo 配置中心 | 學習筆記 | 如何將配置檔案敏感資訊加密?

以上為相關係列文章通過上述文章,相信我們的環境基本搭建完成!下面,我們將瞭解如何對存放在apollo配置中心的檔案進行脫敏處理。一、需求   當我們把我們專案中的所有配置資訊,都放入到apollo配置中心時,可能存在一些敏感配置資訊,不方便讓其他人檢視到。這時候我們就需要對我

Apollo 配置中心 | 學習筆記 如何從Apollo配置中心獲取實時更新配置資訊熱釋出

本章將介紹Apollo配置中心的熱釋出。其實在第九章就有提到Apollo配置中心提供的熱釋出,及實時獲取最新配置資訊。通過API的方式獲取API 方式     API方式靈活,功能完備,配置值實時更新(熱釋出),支援所有Java環境。TestController4.java@

Apollo 配置中心 | 學習筆記十三| 如何將日誌配置檔案放入到Apollo配置中心並支援熱更新?

本章將介紹如何將日誌配置檔案放入到Apollo配置中心並支援熱更新專欄目錄:歡迎關注個人公眾號:  Coder程式設計歡迎關注個人網站:www.52melrin.com需求     日誌模組是每個專案中必須的,用來記錄程式執行中的相關資訊。一般在開發環境下使用DEBUG級別的

Apollo 配置中心 | 學習筆記 | 如何將本地多語言(國際化)配置檔案遷移Apollo配置中心

本章將介紹如何將本地的多語言配置檔案,遷移到Apollo配置中心裡面。專欄目錄:歡迎關注個人公眾號:  Coder程式設計歡迎關注個人網站:www.52melrin.com注:本章不介紹環境,如果環境未搭建成功的可以在專欄中找到相關環境。一、需求    將本地的多語言(國際化

Apollo 配置中心 | 學習筆記 自定義Spring Boot專案通過配置中心啟動專案

一、前言二、專案搭建   2.1 建立Spring Boot專案    因為專案用的是Eureka作為服務註冊與發現,因此這裡我加入了Eureka Client的依賴pom.xml檔案 <dependency> <grou

Apollo 配置中心 | 學習筆記 Apollo配置中心簡單介紹

本章將介紹如何在Apollo配置中心中刪除已經發布的專案。專欄目錄:歡迎關注個人公眾號:  Coder程式設計歡迎關注個人網站:www.52melrin.com一、前言     之前一直學習SpringCloud, 對於配置中心,一直也是採用的Spring Cloud Con

Nginx 學習筆記引入線池 性能提升9倍

連接 驅動 .com 任務隊列 spa 情況下 .html 統架構 href 原文地址:https://www.cnblogs.com/shitoufengkuang/p/4910333.html 一、前言 1、Nignx版本:1.7.11 以上 2、NGINX采用了異步、

Python第十周 學習筆記2_多線

學習筆記多線程 並發 concurrency 同一時間內出現多個請求,高並發就是短時間內出現大量請求 並行 parallel 並行是解決並發的一個方法 並發的解決 食堂打飯模型 1、隊列、緩沖區 queue(或LifoQueue、PriorityQueue)先進先出緩沖區(排隊打飯),可以

F28335 ePWM時基模組TB及其 暫存器配置————TMS320F28335學習筆記

1 時基模組 TB 組成及工作原理簡介 每個PWM模組都有自己的時基單元,這決定了每個PWM模組的時序,時基模組的作用: 確定PWM的週期或頻率 管理當前ePWM模組和其他ePWM模組的相位,以此保持各個ePWM模組的同步性 設定時基計數器的計數方式,是增計數(up)

shiro學習筆記7--cacheManager、sessionManager、rememberMe配置

1、授權:在自定義realm的doGetAuthorizationInfo方法中讀取使用者許可權並授權 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection pri

springmvc學習筆記33——SimpleMappingExceptionResolver異常對映 XML檔案配置

SimpleMappingException異常對映 當異常發生時,我們可以將它對映到我們指定的介面 在springmvc中配置   <!-- 配置使用 SimpleMappingExceptionResolver 來對映異常 -->    

Spring4學習筆記:通過註解的方式配置bean和@Autowired 自動裝配

在 classpath 中掃描元件 元件掃描(component scanning): Spring 能夠從 classpath 下自動掃描, 偵測和例項化具有特定註解的元件. 特定元件包括:

大資料學習筆記-Spark環境配置

Spark配置: spark-env配置: export SPARK_MASTER_IP=hadoop000 slaves配置: hadoop000 調整Spark-shell的日誌輸出級別: conf/log4j.propert

Maven學習筆記-Maven安裝與環境變數配置

一、下載Maven 官網地址:http://maven.apache.org/ 去官網上下載最新的maven. 然後解壓到安裝目錄中,這裡我直接解壓到D盤,如圖所示是maven安裝包的目錄結構。 二、安裝Maven 配置mave