<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                * 免費Kubernetes 教程,絕不降低品質 * [![kuboard for kubernetes (k8s)](https://pub.idqqimg.com/wpa/images/group.png "kuboard for kubernetes (k8s)")](https://shang.qq.com/wpa/qunwpa?idkey=a2d64aa5f578fe885fce065b242afbb12eeb804a67a552f996584b464277303a)在線答疑,也可以掃描左側導航下方的二維碼加群 # 在K8S上部署eureka-server 本文假設您已經完成了[在Kubernetes上部署SpringCloud-OCP](https://kuboard.cn/learning/k8s-practice/ocp/)教程的前序步驟: * [準備OCP的構建環境和部署環境](https://kuboard.cn/learning/k8s-practice/ocp/prepare.html) * [構建docker鏡像并推送到倉庫](https://kuboard.cn/learning/k8s-practice/ocp/build.html) > 也可以使用`ocpsample/eureka-server:latest`鏡像 * 理解 Spring Cloud Eureka 組件,請參考[Eureka服務注冊與發現](https://www.jianshu.com/p/c18d140ad9f6) ## 理解eureka-server 本章節參考 eureka-server 的[代碼倉庫](https://gitee.com/owenwangwen/open-capacity-platform/tree/2.0.1/register-center/eureka-server),并著重從容器化部署的角度來理解 Spring Cloud eureka-server 以及 OCP 中 eureka-server 的配置文件。 `open-capacity-platform/register-center/eureka-server/src/main/resources`目錄中包含了 eureka-server 的配置文件,如下所示: ~~~ ├── application-slave0.yml ├── application-slave1.yml ├── application-slave2.yml ├── application-slave3.yml ├── application.yml └── bootstrap.yml ~~~ 其中,`application-slave0.yml`,`application-slave1.yml`,`application-slave2.yml`,`application-slave3.yml`為 spring boot 的 4 個 profile 配置,他們之間最重要的差異在于以下兩個字段: * server.port * eureka.client.defaultZone 而`application.yml`文件中則指定了`application-slave0.yml`為默認 profile。通過`eureka.client.service-url.defaultZone`字段不難看出: * 配置文件 slave0 為一組,在運行 eureka-server 單節點時使用(該文件中還有一些特定于測試環境的配置項) * 配置文件 slave1/slave2/slave3 為一組,在運行 eureka-server 高可用時使用,為了避免端口沖突,為每一個實例單獨定義了`server.port`字段,通過`--spring.profiles.active`啟動參數為 eureka-server 的實例指定激活的配置文件 ## 確定部署方案 在 Kubernetes 中部署多個 eureka-server 的實例組成集群時,主要有如下考慮因素: * 每個 eureka-server 需要被賦予一個唯一的 id,通過字段`eureka.instance.instance-id`指定。OCP 中,該字段的配置為`${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}` * Kubernetes 為每一個 Pod 分配一個 IP 地址,此要求可以滿足 * eureka-server 的每一個實例需要知道集群中其他實例的地址和端口號,通過字段`eureka.client.serviceUrl.defaultZone`指定 * 請參考[StatefulSet的使用場景](https://kuboard.cn/learning/k8s-intermediate/workload/wl-statefulset/#statefulset-使用場景)以理解為何選擇 StatefulSet 部署 eureka * 請參考[StatefulSet穩定的網絡ID](https://kuboard.cn/learning/k8s-intermediate/workload/wl-statefulset/basics.html#穩定的網絡-id)以理解 StatefulSet 如何為其中的 Pod 分配 DNS name * eureka-server 的多個實例之間,不能存在端口沖突 * 請參考[Kubernetes的網絡模型](https://kuboard.cn/learning/k8s-intermediate/service/connecting.html#kubernetes-的網絡模型)以理解 Kubernetes 中如何避免端口沖突 我們在 Kubernetes 上部署 eureka-server 時: * 使用 StatefulSet 部署 eureka-server,副本數量為 3 * 使用 OCP eureka-server 的 application-slave0.yml 這個 profile * 使用環境變量覆蓋`eureka.client.service-url.defaultZone`取值,將其設置為: ~~~ http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka ~~~ 通過 cloud-eureka-0.cloud-eureka 也可以訪問到對應的 POD,但是此處必須使用完整域名,否則 eureka-server 將不被認為是 available * 使用環境變量覆蓋`eureka.instance.prefer-ip-address`取值,將其設置為:`false` * 為 eureka-server 創建 Ingress,并分配域名`cloud-eureka.ocp.demo.kuboard.cn` * 關于 Ingress,請參考[Ingress通過互聯網訪問您的應用](https://kuboard.cn/learning/k8s-intermediate/service/ingress.html) * 該域名由`工作負載名`.`名稱空間`.`集群名字`.`一級域名`組成,這種命名規則下,只需要將`*.demo.kuboard.cn`的域名解析指向集群 Ingress Controller 的地址就可以,在測試環境中配置新的模塊時非常方便。 ## 部署eureka-server 本教程將 eureka-server 及其他 OCP 組件部署到`ocp`名稱空間,并假設您已經創建好了該名稱空間,參考[創建名稱空間](https://kuboard.cn/guide/cluster/namespace.html) * 在 Kuboard 界面中進入`ocp`名稱空間,并點擊頁頭的按鈕`創建工作負載`,如下圖所示: 填寫表單: | 字段名稱 | 填寫內容 | 備注 | | --- | --- | --- | | 服務類型 | StatefulSet | | | 服務分層 | 中間件 | | | 服務名稱 | eureka | | | 服務描述 | 服務注冊中心 | | | 副本數量 | 3 | | | 容器名稱 | eureka-server | | | 鏡像 | ocpsample/eureka-server:latest | 也可以使用自己構建的鏡像 | | 抓取策略 | Always | | | 環境變量 | eureka.client.service-url.defaultZone=http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka eureka.instance.prefer-ip-address=false | 填入 kuboard 時 環境變量名后面不帶`=` | | Service | NodePort: 協議`TCP`服務端口`1111`節點端口`31111`容器端口`1111` | 可從節點端口訪問 | | Ingress | 域名:cloud-eureka.ocp.demo.kuboard.cn 路由配置: 映射URL`/`服務端口`1111` | 可通過域名訪問 | ![Kubernetes教程:在K8S中部署SpringCloud](https://kuboard.cn/assets/img/image-20190927104441574.7e39264f.png) * 點擊**保存**按鈕 * 點擊**應用**按鈕 * 點擊**完成**按鈕 * 等待 eureka-server 完成部署 * 根據您服務器到 hub.docker.com 的網速不同,等候的時間約 1-5 分鐘 ## [#](https://kuboard.cn/learning/k8s-practice/ocp/eureka-server.html#查看部署結果)查看部署結果 按照上面的部署方式,有如下兩種方式可以從瀏覽器訪問 eureka-server 的界面: * 使用域名:[http://cloud-eureka.ocp.demo.kuboard.cn/](http://cloud-eureka.ocp.demo.kuboard.cn/) * 使用節點端口:http://${任意節點的IP地址}:31111 eureka-server 界面如下圖所示: ![Kubernetes教程:在K8S部署SpringCloud服務注冊中心Eureka-Server](https://kuboard.cn/assets/img/image-20190927140934092.64b6f456.png) [![kuboard for kubernetes (k8s)](https://pub.idqqimg.com/wpa/images/group.png "kuboard for kubernetes (k8s)")](https://shang.qq.com/wpa/qunwpa?idkey=a2d64aa5f578fe885fce065b242afbb12eeb804a67a552f996584b464277303a)在線答疑 ![Kubernetes教程:QQ群在線答疑](https://kuboard.cn/images/kuboard_qq.png) [如果您覺得 Kubernetes教程 有幫到您,點擊此處,給個 Github Star,謝謝!](https://github.com/eip-work/kuboard-press)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看