国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Kubernetes(k8s)部署Dubbo+Nacos服務(wù)

這篇具有很好參考價值的文章主要介紹了基于Kubernetes(k8s)部署Dubbo+Nacos服務(wù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

k8s dubbo,云計算,Kubernetes,云計算,微服務(wù)

一、說明

本文介紹基于 Kubernetes(k8s) 環(huán)境集成阿里云 私有鏡像倉庫 來部署一套 Dubbo + Nacos 的微服務(wù)系統(tǒng),并使用 Kubernetes DNS 以及 port-forward 的方式來打通網(wǎng)絡(luò)訪問。

  • k8s環(huán)境搭建參考文章《基于minikube快速搭建kubernetes單節(jié)點環(huán)境》 中在阿里云鏡像倉庫構(gòu)建的鏡像來進行部署。
  • 基于《基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像》 中在阿里云鏡像倉庫構(gòu)建的鏡像來進行部署。

?

二、部署 MySQL

創(chuàng)建配置文件 mysql-local.yaml 內(nèi)容如下:

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
  labels:
    name: mysql
spec:
  replicas: 1
  selector:
    name: mysql
  template:
    metadata:
      labels:
        name: mysql
    spec:
      containers:
      - name: mysql
        image: nacos/nacos-mysql:5.7
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "root"
        - name: MYSQL_DATABASE
          value: "nacos_devtest"
        - name: MYSQL_USER
          value: "nacos"
        - name: MYSQL_PASSWORD
          value: "nacos"
      volumes:
      - name: mysql-data
        hostPath:
          path: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    name: mysql
spec:
  ports:
  - port: 3306
    targetPort: 3306
  selector:
    name: mysql

ReplicationController 簡稱 RC 可以保證在任意時間運行 Pod 的副本數(shù)量,能夠保證 Pod 總是可用的。

執(zhí)行以下命令,部署 MySQL 5.7:

kubectl apply -f mysql-local.yaml

?

三、部署 Nacos

創(chuàng)建配置文件 nacos-standalone-start.yaml 內(nèi)容如下:

---
apiVersion: v1
kind: Service
metadata:
  name: nacos-standalone
  labels:
    app: nacos-standalone
spec:
  type: ClusterIP
  clusterIP: None
  ports:
    - port: 8848
      name: server
      targetPort: 8848
    - port: 9848
      name: client-rpc
      targetPort: 9848
    - port: 9849
      name: raft-rpc
      targetPort: 9849
    ## 兼容1.4.x版本的選舉端口
    - port: 7848
      name: old-raft-rpc
      targetPort: 7848
  selector:
    app: nacos
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nacos-cm
data:
  mysql.host: "mysql"
  mysql.db.name: "nacos_devtest"
  mysql.port: "3306"
  mysql.user: "nacos"
  mysql.password: "nacos"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nacos
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nacos
      annotations:
        pod.alpha.kubernetes.io/initialized: "true"
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                      - nacos
              topologyKey: "kubernetes.io/hostname"
      containers:
        - name: nacos
          imagePullPolicy: Always
          image: nacos/nacos-server:latest
          resources:
            requests:
              memory: "1Gi"
              cpu: "500m"
          ports:
            - containerPort: 8848
              name: client
            - containerPort: 9848
              name: client-rpc
            - containerPort: 9849
              name: raft-rpc
            - containerPort: 7848
              name: old-raft-rpc
          env:
            - name: SPRING_DATASOURCE_PLATFORM
              value: "mysql"
            - name: MYSQL_SERVICE_HOST
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.host
            - name: MYSQL_SERVICE_DB_NAME
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.db.name
            - name: MYSQL_SERVICE_PORT
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.port
            - name: MYSQL_SERVICE_USER
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.user
            - name: MYSQL_SERVICE_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.password
            - name: MODE
              value: "standalone"
            - name: NACOS_SERVER_PORT
              value: "8848"
            - name: PREFER_HOST_MODE
              value: "hostname"
  selector:
    matchLabels:
      app: nacos

使用 ConfigMap 對象來配置 MySQL 的參數(shù);Nacos 通過 DNS 來訪問數(shù)據(jù)庫的 Service

執(zhí)行以下命令,部署 Nacos 最新版本:

kubectl apply -f nacos-standalone-start.yaml

執(zhí)行以下命令,暴露 Nacos 的端口到宿主機中給外部訪問:

nohup kubectl port-forward svc/nacos-standalone 8848:8848 9848:9848 9849:9849 7848:7848 --address='0.0.0.0' &

kubectl port-forward 通過端口轉(zhuǎn)發(fā)映射本地端口到指定的應(yīng)用端口,它將在您的計算機和 kubernetes 之間創(chuàng)建一條隧道;一般用于測試、實驗室、故障排除,而不是長期的解決方案。

?

四、部署 Dubbo 服務(wù)

4.1. 創(chuàng)建鏡像倉庫的密鑰

由于拉取阿里云倉庫的私有鏡像時需要輸入賬戶和密碼,需要用到 k8s 的 Secret 對象來管理密碼秘鑰等敏感信息。

執(zhí)行以下命令,創(chuàng)建 Secret 對象:

kubectl create secret docker-registry aliyuncs \
  --docker-server=registry.cn-guangzhou.aliyuncs.com \
  --docker-username=zltdiablo@163.com \
  --docker-password=xxxxxx
  • docker-registry 指定 secret 的名稱
  • docker-server 倉庫地址
  • docker-username 倉庫賬號
  • docker-password 倉庫密碼

創(chuàng)建成功后,可以使用以下命令查看密鑰信息:

kubectl get secret aliyuncs --output=yaml

?

4.2. 部署 provider 服務(wù)

創(chuàng)建配置文件 provider.yaml 內(nèi)容如下:

---
apiVersion: v1
kind: Service
metadata:
  name: zlt-nacos-provider
spec:
  clusterIP: None
  selector:
    app: zlt-nacos-provider
  ports:
    - protocol: TCP
      port: 20880
      targetPort: 20880
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zlt-nacos-provider
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zlt-nacos-provider
  template:
    metadata:
      labels:
        app: zlt-nacos-provider
    spec:
      imagePullSecrets:
        - name: aliyuncs
      containers:
        - name: server
          image: registry.cn-guangzhou.aliyuncs.com/zlt-test/nacos-provider:1.0-SNAPSHOT
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 20880
          env:
            - name: DUBBO_REGISTRY_ADDRESS
              value: "nacos://nacos-standalone:8848"
            - name: DUBBO_IP_TO_REGISTRY
              value: "zlt-nacos-provider"

DUBBO_REGISTRY_ADDRESS 參數(shù)指定注冊中心地址,使用 DNS 來訪問 Nacos

DUBBO_IP_TO_REGISTRY 參數(shù)指定服務(wù)注冊的 IP 地址,配置自己 Service 的名稱

通過 imagePullSecrets 參數(shù)來綁定登錄鏡像倉庫所使用的 secret 名稱。

執(zhí)行以下命令,部署 provider 最新版本:

kubectl apply -f provider.yaml

?

4.3. 部署 consumer 服務(wù)

創(chuàng)建配置文件 consumer.yaml 內(nèi)容如下:

---
apiVersion: v1
kind: Service
metadata:
  name: zlt-nacos-consumer
spec:
  clusterIP: None
  selector:
    app: zlt-nacos-consumer
  ports:
    - name: web
      port: 8080
      targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zlt-nacos-consumer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zlt-nacos-consumer
  template:
    metadata:
      labels:
        app: zlt-nacos-consumer
    spec:
      imagePullSecrets:
        - name: aliyuncs
      containers:
        - name: server
          image: registry.cn-guangzhou.aliyuncs.com/zlt-test/nacos-consumer:1.0-SNAPSHOT
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
          env:
            - name: DUBBO_REGISTRY_ADDRESS
              value: "nacos://nacos-standalone:8848"
            - name: DUBBO_IP_TO_REGISTRY
              value: "zlt-nacos-consumer"

執(zhí)行以下命令,部署 consumer 最新版本:

kubectl apply -f consumer.yaml

?

五、測試

通過命令 kubectl get pod 查看所有創(chuàng)建的 pods 確保所有的狀態(tài)都為 Running

k8s dubbo,云計算,Kubernetes,云計算,微服務(wù)

執(zhí)行以下命令,暴露 consumer 服務(wù)的 web 端口到宿主機中給外部訪問:

nohup kubectl port-forward svc/zlt-nacos-consumer 8080:8080 --address='0.0.0.0' &

在瀏覽器輸入以下地址進行訪問:

http://宿主機IP:8080/test?name=123

?

六、樣例工程

集成 jib-maven-plugin 插件的樣例 Spring Boot 工程:文章來源地址http://www.zghlxwxcb.cn/news/detail-780981.html

  • https://gitee.com/zlt2000_admin/zlt-dubbo-samples/tree/master/dubbo-nacos
  • https://github.com/zlt2000/zlt-dubbo-samples/tree/master/dubbo-nacos

到了這里,關(guān)于基于Kubernetes(k8s)部署Dubbo+Nacos服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于Docker的K8s(Kubernetes)集群部署

    基于Docker的K8s(Kubernetes)集群部署

    開始搭建k8s集群 三臺服務(wù)器修改主機名稱 關(guān)閉對話窗口,重新連接 三臺主機名稱呢就修改成功了。 接下來修改每臺節(jié)點的 hosts 文件 所有節(jié)點關(guān)閉 setLinux 查看是否關(guān)閉成功 為每個節(jié)點添加 k8s 數(shù)據(jù)源 如果安裝docker數(shù)據(jù)源找不到y(tǒng)um-config 所有節(jié)點安裝kubelet kubelet安裝中… k

    2024年02月08日
    瀏覽(25)
  • 服務(wù)器-Kubernetes (K8S)單機部署實戰(zhàn) -- 001

    服務(wù)器-Kubernetes (K8S)單機部署實戰(zhàn) -- 001

    ? ? ?本篇博文是 centos 7 系統(tǒng)安裝 kubernetes 單機 master 節(jié)點操作。 一: 查看 服務(wù)器 配置信息 ? ? ? 1. 執(zhí)行命令查看服務(wù)器cpu信息。安裝 kubernetes 服務(wù),cpu核心數(shù)必須大于2,內(nèi)存大于2G。 ? ? ? 2.? 修改服務(wù)器設(shè)置信息,避免安裝出現(xiàn)問題。 ? ? ? ? a.? 臨時關(guān)閉swap,防止

    2024年02月19日
    瀏覽(32)
  • 【k8s】基于Prometheus監(jiān)控Kubernetes集群安裝部署

    【k8s】基于Prometheus監(jiān)控Kubernetes集群安裝部署

    目錄 基于Prometheus監(jiān)控Kubernetes集群安裝部署 一、環(huán)境準備 二、部署kubernetes集群 三、部署Prometheus監(jiān)控平臺 四、部署Grafana服務(wù) 五、grafana? web操作 IP地址 主機名 組件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168

    2024年02月12日
    瀏覽(107)
  • [kubernetes]二進制部署k8s集群-基于containerd

    k8s從1.24版本開始不再直接支持docker,但可以自行調(diào)整相關(guān)配置,實現(xiàn)1.24版本后的k8s還能調(diào)用docker。其實docker自身也是調(diào)用containerd,與其k8s通過docker再調(diào)用containerd,不如k8s直接調(diào)用containerd,以減少性能損耗。 除了containerd,比較流行的容器運行時還有podman,但是podman官方安裝

    2024年02月12日
    瀏覽(30)
  • 在Kubernetes(k8s)上部署整個SpringCloud微服務(wù)應(yīng)用

    在Kubernetes(k8s)上部署整個SpringCloud微服務(wù)應(yīng)用

    視頻教程地址:https://www.bilibili.com/video/BV1Xh4y1q7aW/ 這次我準備了一個微服務(wù)項目,是依照RuoYi-Cloud(http://doc.ruoyi.vip/ruoyi-cloud/)進行了一些修改所得到的微服務(wù)項目。重點是修改了如圖根據(jù)不同環(huán)境添加了不同的配置文件: 項目代碼地址為:https://gitcode.net/m0_51510236/yueyang-cloud 我

    2024年02月05日
    瀏覽(16)
  • 基于Dubbo和Nacos搭建微服務(wù)的配置中心和服務(wù)注冊中心

    基于Dubbo和Nacos搭建微服務(wù)的配置中心和服務(wù)注冊中心

    1.添加nacos依賴 2.配置application.properties PS:nacos2.0除了需要8848的端口之外,還新增了端口+1000的新端口用于客戶端和服務(wù)端GRPC通信的端口,所以如果是自己部署的nacos需要放開這倆個端口,服務(wù)才可以啟動成功。 3.配置類 3.1 添加Spring Cloud原生注解 @EnableDiscoveryClient 3.2 客戶端服

    2024年02月16日
    瀏覽(92)
  • docker部署的微服務(wù),指定ip注冊到nacos,dubbo指定ip和端口注冊到nacos

    docker部署的微服務(wù),指定ip注冊到nacos,dubbo指定ip和端口注冊到nacos

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 docker的ip和docker主機所在局域網(wǎng)中的其他主機是不通的,這就導(dǎo)致本地啟動的項目是不能訪問docker部署的服務(wù)。 spring.cloud.nacos.discovery.ip = 192.168.1.100 設(shè)置docker的環(huán)境變量來解決 Rancher中配置docker的環(huán)境變

    2024年02月03日
    瀏覽(30)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器運行)

    主機名 IP地址 備注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主機配置 2、升級內(nèi)核 3、配置內(nèi)核轉(zhuǎn)發(fā)以及過濾 4、安裝ipset ipvsadm,IPVS(IP Virtual Server)是一個用于負載均衡的 Linux 內(nèi)核模塊,它可以用來替代 kube-proxy 默認的

    2024年02月20日
    瀏覽(101)
  • Kubernetes(k8s)上搭建nacos集群

    Kubernetes(k8s)上搭建nacos集群

    你需要準備一個Kubernetes集群,如圖我的集群已經(jīng)準備完畢: nacos可以將配置文件存儲到數(shù)據(jù)庫當中,所以我們要先準備一個擁有nacos數(shù)據(jù)表結(jié)構(gòu)的數(shù)據(jù)庫,這樣的數(shù)據(jù)庫鏡像我已經(jīng)準備好了,當然你也可以自己制作這個鏡像: 我之前寫過一篇Kubernetes上安裝數(shù)據(jù)庫的文章:h

    2024年02月03日
    瀏覽(35)
  • 【Kubernetes】第二十二篇 - k8s 部署 MySQL 服務(wù)(secret、deployment、service)

    上一篇,介紹基于 k8s 項目部署流程設(shè)計; 本篇,介紹 MySQL 服務(wù)的部署; 部署 MySQL 可以為指定 node 添加污點,專門用于 mysql 部署(當前只有一個節(jié)點,不考慮); 為了保證mysql容器重啟時數(shù)據(jù)不會丟失:創(chuàng)建 mysql 數(shù)據(jù)目錄,用于存儲 mysql 數(shù)據(jù),實現(xiàn) MySQL 數(shù)據(jù)的持久化;

    2024年02月03日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包