关于kubernetes:Kubernetes-1205-实现一个服务注册与发现到Nacos

6次阅读

共计 3707 个字符,预计需要花费 10 分钟才能阅读完成。

背景:

参照 Kubernetes 1.20.5 搭建 nacos,在 kubernetes 集群中集成了 nacos 服务。想体验下服务的注册与发现性能。当然了 也想体验下 sentinel 各种的集成,反正就是 spring cloud alibaba 全家桶的残缺体验啊 …… 一步一步来吧哈哈哈。先来一下服务的注册与发现。
特地鸣谢 https://blog.didispace.com/spring-cloud-alibaba-1/,程序猿 DD 的系列文章昨天无意间看到的,很不错,曾经珍藏。

一. maven 打包构建利用 IMAGE 镜像

留神:以下 maven 打包构建流程根本 copy 自 https://blog.didispace.com/spring-cloud-alibaba-1/。所以就不做代码的搬运工了。我的项目演示的代码都能够去程序猿 DD 大佬的 github 去下载。

关 于服务提供者与服务消费者 alibaba-nacos-discovery-server 为服务提供者 alibaba-nacos-discovery-client-common 为服务消费者强调一下。

1. 构建 alibaba-nacos-discovery-server image

嗯 还的强调一下服务提供者!这个是 ……

因为我集体打包测试是要在 kubernets 集群中应用,并且跟 nacos 服务在同一命名空间。连贯 nacos 这里我就应用了外部服务名。package 打包 target 目录下生成 alibaba-nacos-discovery-server-0.0.1-SNAPSHOT.jar jar 包。

上传包到服务器改名 app.jar , 复用 Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD app.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

打包镜像,将镜像上传到镜像仓库(集体应用了腾讯云的公有仓库,当然了也能够本人装置 harbor 做仓库)。

mv alibaba-nacos-discovery-server-0.0.1-SNAPSHOT.jar app.jar
docker build -t ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1 .
docker push  ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1 

2 . 构建 libaba-nacos-discovery-client-common image

根本步骤与上一步一样:

二. Kubernetes 集群部署服务

1. 部署 alibaba-nacos-discovery-server

cat alibaba-nacos-discovery-server.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: alibaba-nacos-discovery-server
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: alibaba-nacos-discovery-server
  template:
    metadata:
      labels:
        app: alibaba-nacos-discovery-server
    spec:
      containers:
        - name: talibaba-nacos-discovery-server
          image: ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1
          ports:
            - containerPort: 8001
          resources:
            requests:
              memory: "256M"
              cpu: "250m"
            limits:
              memory: "512M"
              cpu: "500m" 
      imagePullSecrets:                                              
        - name: tencent
---

apiVersion: v1
kind: Service
metadata:
  name: alibaba-nacos-discovery-server
  labels:
    app: alibaba-nacos-discovery-server
spec:
  ports:
  - port: 8001
    protocol: TCP
    targetPort: 8001
  selector:
    app: alibaba-nacos-discovery-server
kubectl apply -f alibaba-nacos-discovery-server.yaml -n nacos

kubectl get pods -n nacos

登陆 nacos 治理地址能够发现服务治理 - 服务列表有 alibaba-nacos-discovery-server 注册

2. 部署 alibaba-nacos-discovery-client-common

消费者 消费者 消费者。本人老记不住
cat alibaba-nacos-discovery-client-common.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: alibaba-nacos-discovery-common
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: alibaba-nacos-discovery-common
  template:
    metadata:
      labels:
        app: alibaba-nacos-discovery-common
    spec:
      containers:
        - name: talibaba-nacos-discovery-common
          image: ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-client-common:0.1
          ports:
            - containerPort: 9000
          resources:
            requests:
              memory: "256M"
              cpu: "250m"
            limits:
              memory: "512M"
              cpu: "500m" 
      imagePullSecrets:                                              
        - name: tencent
---

apiVersion: v1
kind: Service
metadata:
  name: alibaba-nacos-discovery-common
  labels:
    app: alibaba-nacos-discovery-common
spec:
  ports:
  - port: 9000
    protocol: TCP
    targetPort: 9000
  selector:
    app: alibaba-nacos-discovery-common
kubectl apply -f alibaba-nacos-discovery-client-common.yaml -n nacos

这个时候登陆 nacos 治理页面应该是有 alibaba-nacos-discovery-client-common 服务注册了。

3. 更改 alibaba-nacos-discovery-server 正本数验证服务

认真看了下 https://blog.didispace.com/spring-cloud-alibaba-1/ 他启动了两个 alibaba-nacos-discovery-server 实例,嗯 两个服务提供者。好验证一下 nacos 将服务上线下线的根底性能。正好我也扩容一下顺便补习一下 scale 命令

kubectl scale deployment/alibaba-nacos-discovery-server --replicas=2 -n nacos


后面拜访 alibaba-nacos-discovery-server 服务都是只有 10.0.5.120 一个 ip,deployment 扩容实现后拜访 alibaba-nacos-discovery-client-common(消费者)放回了两个服务提供者轮训形式的两个 ip。

察看 nacos 治理 web 页面,服务列表 alibaba-nacos-discovery-server 实例数量,衰弱实例都曾经变成 2:

点开 alibaba-nacos-discovery-server 服务详情。嗯集群下呈现了两个实例的具体信息。

看到集群实例配置这里有个下线的性能想体验一下:

下线了 10.5.208 的实例 再拜访一下。发现的确只有 10.0.5.120 节点了:

复原实例拜访服务提供者 10.5.208。点击上线,不做其余设置。持续拜访消费者利用应该是两个 ip 的轮询权重一样的:

简略记录 简略记录。千里之行; 始于足下 ……..
对了补充一下 订阅者列表哈哈哈,这个中央要输出 没有抉择框。好劳神啊 ….

正文完
 0